plugin: name: SEO description: Search engine metadata for every content type, URL rules and global SEO settings. nav: audit: "Site audit" crawls: "Crawls" pages: Pages robots: robots.txt notfound: 404 log redirects: Redirects seo: SEO history: History rules: URL rules transfer: Import and export permissions: tab: SEO manage: Manage SEO manage_comment: Edit the SEO tab of every content type, URL rules, redirects, robots.txt and the SEO settings, in the admin and through MCP. tab: seo: SEO field: snippet: Search result preview description_comment: Leave empty to use the description template, then the content's own excerpt. keyphrase: Focus keyphrase keyphrase_comment: Checked in the preview above. Never shown on the site. robots_comment: “Inherit” follows a URL rule for this address, then the content type default from the SEO settings. Also sent as an X-Robots-Tag header. og_title_comment: Used by Facebook, LinkedIn and X. Empty fields use the SEO title, description and the content's image. og_image_comment: Recommended 1200 × 630 px. Shared by all languages of this record. effective: What search engines get title: SEO title title_comment: Leave empty to use the title template from the SEO settings. title_comment_rule: Leave empty to keep the title of the page or record at this address. description: Meta description canonical: Canonical URL canonical_comment: Leave empty for this page's own address. Accepts a path (/blog/post) or a full URL, also on another domain. robots: Search engine indexing robots_comment_rule: “Inherit” keeps the setting of the record at this address, then the content type default. og_title: Social title og_description: Social description og_image: Social image primary_category: "Primary category (breadcrumb trail)" primary_category_comment: "Sets the breadcrumb trail and the article section. Default: the first category." primary_category_default: "Default (first category)" schema: "Structured data" schema_comment: "The schema.org type of this page in its JSON-LD graph. Shared by all languages." graph: "Structured data preview" robots: llms_enabled: Serve llms.txt llms_enabled_comment: Lists the site's indexable pages from the sitemaps at /llms.txt, for AI tools that read it. llms_intro: Introduction llms_intro_comment: "A short description of the site at the top of llms.txt. Empty: the default meta description." invalid: The robots value is not valid. Use index or noindex, follow or nofollow and the advanced directives, separated by commas. inherit: Inherit site_default: Site default staging_title: This is not the production environment title: "robots.txt" tab_file: "robots.txt" tab_bots: "AI bots" staging_text: "Crawlers get “Disallow: /” and every page is sent with “X-Robots-Tag: noindex”, whatever you save here. The text below applies in production." content: "robots.txt rules" content_comment: "Sitemap lines and the AI bot rules are added automatically when the file is served." tester: "Test an address" served: "What crawlers get" served_comment: "The saved version, as served at /robots.txt. Save to update it." served_production: "Production" too_large: "robots.txt may be at most 500 KB. Google ignores everything after that." test: "Test URL" test_invalid: "The test request is not valid." url_required: "Enter an address starting with /." blocks_noindex: one: ":count noindex address is blocked by these rules, so Google cannot see its noindex: :list" other: ":count noindex addresses are blocked by these rules, so Google cannot see their noindex: :list" status: excluded_title: Not in the sitemaps excluded_noindex: This page is set to noindex, so the sitemaps leave it out. excluded_canonical: The canonical URL points to “:url”, so the sitemaps list that address instead. excluded_redirect: This address redirects to “:url”, so the sitemaps leave it out. excluded_type: Its content type is turned off in the sitemap settings. rule_title: A URL rule overrides part of this tab rule_text: The rule for “:url” sets :fields. Change them in SEO › URL rules. canonical_noindex: The canonical URL “:url” is set to noindex, so search engines may ignore both pages. canonical_redirected: The canonical URL “:url” redirects to “:target”. Point the canonical to the final address. staging: On this environment every page is served with noindex and robots.txt blocks everything (non-production lock). primary_gone: "The primary category “:name” is no longer assigned, so the first category is used. Choose another one below." settings: tab_audit: "Site audit" crawl_schedule: "Automatic crawl" crawl_schedule_off: "Off" crawl_schedule_daily: "Daily" crawl_schedule_weekly: "Weekly" crawl_schedule_comment: "Runs at night. You can always start a crawl by hand in SEO › Crawls." crawl_max_pages: "Pages per crawl" crawl_max_pages_comment: "The crawl stops after this many pages. Default 5000." crawl_delay: "Pause between requests (ms)" crawl_delay_comment: "At most two requests run at a time. A longer pause spares a small server." crawl_keep: "Crawls kept" crawl_keep_comment: "Older crawls are deleted with their pages and issues." generic_anchors: "Generic link texts" generic_anchors_comment: "One per line. The crawl reports links whose whole text is one of these, ignoring letter case." placeholders: Placeholders placeholders_code: Placeholder placeholders_meaning: Replaced with category: SEO label: SEO settings description: Title templates, default descriptions, indexing rules, address format and search engine verification. tab_general: General tab_indexing: Indexing tab_urls: Addresses tab_verification: Verification tab_links: Links autolink_max: Auto-links per page autolink_max_comment: "At most this many phrases from SEO › Auto-links are linked in one text. 0 turns auto-linking off." links_new_tab: Open links to other sites in a new tab links_new_tab_comment: "On: links to other sites open in a new tab with rel=noopener, and screen readers hear that they do. Off: they open in the same tab. Their nofollow, sponsored and ugc attributes apply either way." nofollow_domains: Domains that always get nofollow sponsored_domains: Domains that always get sponsored domains_comment: One domain per line, e.g. example.com (subdomains included). domain_invalid: "Line :line: “:value” is not a domain. Write it without https:// and without a path." site_name: Site name site_name_comment: Replaces %site% in title templates. title_template: Title template title_template_comment: 'Used when a page has no SEO title. Default: the page title, a vertical bar and the site name (%title% followed by %site%).' home_template: Home page title template default_description: Default meta description default_description_comment: Used when neither the page, its template nor its content provides a description. default_og_image: Default social image twitter_site: X (Twitter) account twitter_site_comment: Your handle with @, e.g. @summercms. Sent as twitter:site. type_inject: Show the SEO tab type_inject_comment: Off hides the tab. Saved values are kept and still used. type_title_template: Title template type_title_template_comment: Leave empty to use the general title template. type_description_template: Description template type_robots: Default indexing query_params: Query parameters query_params_comment: Decides which parameters stay in the canonical URL. A trailing * matches a prefix, e.g. utm_*. param_name: Parameter param_kind: Kind param_path: Only under path param_content: 'Content: stays in the canonical' param_filter: 'Filter or sort: dropped, page gets noindex, follow' param_tracking: 'Tracking: dropped' param_path_comment: 'Empty: the whole site. Example: /katalog/*' param_add: Add parameter noindex_paths: Addresses never indexed noindex_paths_comment: One address or pattern per line, e.g. /konto/* or /logowanie. These pages get noindex, nofollow. Pages behind sign-in are marked automatically. search_paths: Internal search results search_paths_comment: One address or pattern per line, e.g. /szukaj. These pages get noindex, follow. url_host: Domain form url_host_keep: Do not change url_host_www: Always with www url_host_bare: Always without www url_slash: Trailing slash url_slash_keep: Do not change url_slash_add: Always add (/blog/) url_slash_remove: Always remove (/blog) url_lowercase: Lowercase addresses url_change_comment: A change sends every non-matching address to the new form with a 301. Check the site's current addresses first. url_fixed_comment: 'Always on: HTTPS, removal of double slashes and /index.html, a single 301 hop to the final address, and strict addresses (every segment must match the record).' verify_google: Google verification code verify_bing: Bing verification code verify_yandex: Yandex verification code verify_code_comment: Paste only the content value of the meta tag. It is added to the home page. verify_other: Other verification meta tags verify_other_name: Meta name verify_other_content: Content verify_other_add: Add meta tag verify_files: Verification files verify_files_filename: File name verify_files_body: File content verify_files_add: Add file verify_files_comment: Served from the site root, e.g. /google1234.html. verify_filename_invalid: Use a plain file name ending in .html, .txt or .xml, without slashes, e.g. google1234.html. verify_filename_taken: Another verification file already uses this name. template_unknown: Unknown placeholder “:placeholder”. Use one from the table below the templates. breadcrumb_home_default: "Home" tab_publisher: "Publisher" tab_local: "Local business" breadcrumb_home: "Home page name in breadcrumbs" breadcrumb_home_comment: "The first item of every breadcrumb trail, also in the BreadcrumbList structured data." publisher_type: "Publisher type" publisher_org: "Organisation" publisher_person: "Person (personal site)" publisher_type_comment: "Who publishes the site, in the structured data of every page." publisher_name: "Name" publisher_name_comment: "Empty: the site name." publisher_logo: "Logo or photo" publisher_logo_comment: "Organisation: the logo, at least 112 × 112 px. Person: a photo." publisher_url: "Website" publisher_url_comment: "Empty: the site address." publisher_same_as: "Profiles elsewhere (sameAs)" publisher_same_as_comment: "One address per line: social profiles, Wikipedia, the company register entry." same_as_invalid: "Line :line: use a full address starting with https://." url_invalid: "Use a full address starting with https://." email_invalid: "Enter an email address such as office@example.com." publisher_email: "Contact email" publisher_phone: "Phone" publisher_phone_comment: "With the country code, e.g. +48 600 000 000." publisher_preview: "Generated publisher data" local_enabled: "Publish as a local business" local_enabled_comment: "For a business with an address that customers visit, or with a service area. Not available for a person." local_type: "Kind of business" local_type_local_business: "Local business (general)" local_type_professional_service: "Professional services" local_type_store: "Shop" local_type_food_establishment: "Restaurant or café" local_type_health_and_beauty_business: "Health and beauty" local_type_medical_business: "Medical practice" local_type_legal_service: "Legal services" local_type_home_and_construction_business: "Home and construction" local_type_automotive_business: "Automotive" local_type_financial_service: "Financial services" local_price_range: "Price range" local_price_range_comment: "e.g. 50–200 zł or $$." local_street: "Street and number" local_postal_code: "Postal code" local_city: "City" local_region: "Region" local_country: "Country code" local_country_comment: "Two letters, e.g. PL." local_latitude: "Latitude" local_longitude: "Longitude" local_coordinates_comment: "Decimal degrees, e.g. 52.2297." local_hours: "Opening hours" local_hours_add: "Add opening hours" local_hours_comment: "Add two rows for one day to split it, e.g. 9:00–13:00 and 14:00–18:00. A day without rows is closed." hours_day: "Day" hours_opens: "Opens" hours_closes: "Closes" day_mon: "Monday" day_tue: "Tuesday" day_wed: "Wednesday" day_thu: "Thursday" day_fri: "Friday" day_sat: "Saturday" day_sun: "Sunday" hours_time_comment: "24-hour time, e.g. 09:00." local_person: "A person cannot be a local business. Change the publisher type to Organisation, or turn this off." local_address_required: "A local business needs a street, a postal code and a city." time_invalid: "Use 24-hour time, e.g. 09:00." hours_order: "Closing must come after opening." country_invalid: "Use a two-letter country code, e.g. PL." coordinate_invalid: "Enter decimal degrees: latitude from -90 to 90, longitude from -180 to 180." tab_pagination: "Pagination" page_form: "Page address form" page_form_query: "Query parameter: /blog?page=2" page_form_path: "Path segment: /blog/strona/2" page_form_comment: "A change sends every address in the other form to this one with a 301. ?page=1 always redirects to the address without a number." page_segment: "Path segment" page_segment_comment: "Used with the path form, per language, e.g. strona or page." page_title_suffix: "Title suffix on page 2 and later" page_title_suffix_comment: "Added after the page title, before the rest of the title template. Placeholders: %page%, %pages%." page_title_suffix_default: "– page %page% of %pages%" page_description_suffix: "Description suffix on page 2 and later" page_description_suffix_comment: "Added at the end of the meta description. Placeholders: %page%, %pages%." page_description_suffix_default: "Page %page% of %pages%." page_segment_invalid: "Use lowercase letters, digits and hyphens only, e.g. strona." rules: new: New URL rule list_title: URL rules name: URL rule url: Address match: Match match_exact: Exact address match_pattern: Pattern note: Note note_comment: Why this rule exists, e.g. the audit it comes from. Not shown on the site. col_overrides: Sets col_updated: Updated url_comment_full: A URL rule wins over the record's SEO tab and the SEO settings. A path such as / or /blog?tag=*. In a pattern, * matches any text. url_taken: A rule for this address and match already exists. url_invalid: Start the address with /. Use * only in a pattern. list_empty: No URL rules yet. A rule sets SEO for an address that has no record behind it, such as the home page or a filter URL. delete_confirm: Delete this URL rule? The address falls back to its record and the SEO settings. You can undo it in History. delete_selected_confirm: one: Delete :count URL rule? You can undo it in History. other: Delete :count URL rules? You can undo it in History. history: list_title: History name: Change when: When who: Who via: Via what: What change: Change batch: Batch via_admin: Admin via_mcp: MCP via_import: Import via_auto: Automatic via_undo: Undo what_record: SEO of :type “:title” (:locale) what_rule: URL rule “:url” what_redirect: Redirect “:url” what_robots: robots.txt what_settings: SEO settings what_notfound: 404 log entry “:url” what_page: Page “:url” what_autolink: Auto-link “:phrase” change_cell: one: ':field: :before → :after' other: ':count fields changed' created: (created) deleted: (deleted) state_undone: Undone filter_via: Via filter_when: When filter_who: Who preview: Change details diff_field: Field diff_before: Before diff_after: After list_empty: No SEO changes recorded yet. Every change from the admin, MCP or an import appears here and can be undone. undo: Undo this change undo_confirm: Undo this change? The values before it are restored, and the undo is recorded as a new change. undone: Change undone. undo_batch: Undo the whole batch undo_batch_confirm: Undo every change of this batch? It is undone as a whole or not at all. batch_undone: Batch undone. undo_stale: "“:field” has changed since: :author changed it on :time. Undoing would overwrite that. Nothing was undone." undo_loop: "Undoing would create a redirect loop: :path. Nothing was undone." undo_gone: The :type this change belongs to no longer exists. Nothing was undone. undo_done: This change is already undone. undo_unsupported: This change cannot be undone here. Nothing was undone. record: record kind_rule: URL rule kind_redirect: redirect kind_robots: robots.txt kind_settings: SEO settings kind_notfound: 404 log entry kind_page: registry page jobs: crawl: 'SEO: crawl the site' generate_entries: 'SEO: generate entries' effective: property: Property value: Value source: Source locale: “:locale” — :url source_rule: URL rule source_record: This record source_template: Template source_global: SEO settings source_content: Content source_default: Site default no_url: This language has no address yet. Fill in its slug and save. schema: "Schema type" trail: "Breadcrumb trail" placeholder: title: The content's title description: The content's own description or excerpt site: The site name image: invalid: The file must be a JPEG, PNG, GIF or WebP image. too_big: The image may not be larger than 10 MB. url_invalid: The image must be a path or an http(s) address. forbidden: You may not upload SEO images. snippet: action: Check duplicates invalid: The preview request is not valid. redirects: auto_created: The address changed, so a 301 from “:old” to “:new” was created. :count earlier redirects now point straight to the new address. loop: "This redirect would create a loop: :path. Nothing was saved." chain_notice: "Saved, but this redirect is part of a chain: :path. Visitors take :count hops. Point “:source” straight to “:final”." target_required: "Enter the address to redirect to, or choose 410 Gone." target_gone: "A 410 Gone rule sends visitors nowhere. Clear the target, or choose 301 or 302." target_invalid: "Enter a path starting with / or a full http(s) address." regex_invalid: "This is not a valid regular expression: :error" source_invalid: "Start the address with /. Use * only in a pattern." source_taken: "Another redirect already uses this address and match." new: "New redirect" list_title: "Redirects" name: "Redirect" source: "From" source_comment: "Exact: /old-post. Pattern: /old/* (the matched part replaces * in the target). Regex: ^/p/(\\d+)$ (use $1 in the target)." match: "Match" match_exact: "Exact" match_pattern: "Pattern" match_regex: "Regex" target: "To" target_comment: "A path or a full URL. Leave empty for 410 Gone." status: "Status" status_301: "301 Moved permanently" status_302: "302 Found (temporary)" status_410: "410 Gone" query: "Query string" query_ignore: "Ignore it" query_pass: "Pass it to the target" ignore_case: "Ignore letter case" trailing_slash: "Match with and without a trailing slash" note: "Note" origin: "Origin" origin_manual: "Manual" origin_slug: "Address change" origin_import: "Import" origin_mcp: "MCP" origin_notfound: "404 log" updated: "Updated" state_chain: "Chain" filter_chain: "Chains" filter_chain_only: "Only chains" filter_chain_hide: "Hide chains" list_empty: "No redirects yet. Create one, import a CSV file, or create one from the 404 log." delete_confirm: "Delete this redirect? Its source address will return 404 again. You can undo it in History." delete_selected_confirm: one: "Delete :count redirect? Its source address will return 404 again. You can undo it in History." other: "Delete :count redirects? Their source addresses will return 404 again. You can undo it in History." notfound: list_title: "404 log" name: "404 address" url: "Address" hits: "Hits" last_hit: "Last hit" first_seen: "First seen" referer: "Last referer" state_resolved: "Resolved" filter_status: "Status" filter_status_open: "Open" filter_status_resolved: "Resolved" preview: "Address that returned 404" resolved_hint: "Resolved by “:rule”. This address no longer returns 404." redirect: "Create redirect…" redirect_prompt: "Redirect to (301)" redirect_placeholder: "/new-address" redirect_comment: "A path or a full URL. To use 302, edit the redirect afterwards." redirect_confirm: "Create a 301 redirect from this address?" redirected: "Redirect “:url” → “:target” created." gone: "Mark as gone (410)" gone_confirm: "Answer this address with 410 Gone? Search engines drop it faster than a 404. You can undo it in History." gone_selected_confirm: "Answer the selected addresses with 410 Gone? You can undo it in History." gone_done: "410 Gone created for “:url”." gone_selected_done: "410 Gone created for the selected addresses." has_rule: "A redirect for “:url” already exists. Edit it in Redirects." list_empty: "No 404 errors recorded. Addresses that return 404 appear here with their hit count." delete_selected_confirm: one: "Remove :count address from the log? It is added again on its next 404." other: "Remove :count addresses from the log? They are added again on their next 404." bots: search_comment: "AI search and answers. Off blocks it in robots.txt." training_comment: "Collects content for AI training. Off blocks it in robots.txt." user_comment: "Fetches a page when a user asks for it. Off blocks it in robots.txt." api: field_unknown: This is not an SEO field. keyphrase_record_only: A focus keyphrase belongs to a record; a URL rule has none. canonical_invalid: The canonical URL must be a path starting with / or an absolute http(s) URL. bot_unknown: This is not an AI bot of the robots.txt screen. value_invalid: This value is not valid here. locale_unknown: "The record behind this address has no locale “:locale”." type_unknown: No content type with this key is registered. batch_too_large: "A batch takes at most :max changes." change_not_found: The record this change names does not exist. op_unknown: "Unknown operation “:op”." conflict_noindex_published: "“:url” is a published page listed in the sitemaps; noindex removes it from search results." record_only: "Only the SEO of a record has this value." transfer: title: Import and export delimiter: CSV delimiter delimiter_comma: Comma (,) delimiter_semicolon: Semicolon (;), as Excel uses in Polish delimiter_comment: Files are UTF-8 with a byte order mark, so Excel opens Polish characters correctly. widget: Files preview: Preview import applied: one: "Applied :count change as one batch. You can undo it in History." other: "Applied :count changes as one batch. You can undo them in History." stale: The data changed after the preview. Preview the file again before applying. unreadable: The file could not be read as CSV. Check the delimiter and that the first row holds the column names. missing_column: "The file has no “:column” column. Download an export to see the expected columns." dataset_unknown: Choose redirects, URL rules or SEO of records. too_large: This file is larger than 60 KB. Split it into smaller files, or import it through MCP. too_large_mcp: This file is larger than 900 KB. Import it in smaller parts. export_too_large: This export is too large to download here. Export it through MCP, page by page. refused_blocks: Fix the refused rows in the file and preview it again. Nothing is applied while a row is refused. token_invalid: This preview is no longer valid. Preview the file again. row_loop: "Creates a redirect loop: :path" row_chain: "Creates a chain: :path" row_canonical: "The canonical URL redirects to “:target”" row_rule: "No record at this address: a URL rule is created" row_invalid: ":field: :message" pages: type: Site page list_title: Pages name: Page new: New page list_empty: No pages yet. Add the site's own pages here, such as the home page, contact or offer pages, so they get an SEO tab and a place in the sitemaps. The site can also report its pages automatically. url: Address title: Name kind: Type origin: Origin content_updated: Content changed reported: Last reported kind_page: Page kind_offer: Offer kind_service: Service kind_landing: Landing page origin_manual: Manual origin_reported: Reported by the site origin_mcp: MCP state_missing: Not on the site filter_missing: Not on the site filter_missing_only: Only missing filter_missing_hide: Hide missing url_comment: The page's path in each language, e.g. /kontakt. Leave a language empty when the page has no version in it. title_comment: Used for the default SEO title, the HTML sitemap and breadcrumbs. kind_comment: "Decides the sitemap file and the default structured data: offers and services become Service." parent: Parent page parent_none: None (top level) parent_comment: Places the page under another one in breadcrumbs. content_updated_comment: Sent as lastmod in the sitemaps. Change it when the page's content changes on the site. note: Note note_comment: Not shown on the site. status_reported: Reported by the site on :time. status_missing: The site's last report (:time) did not include this address. Check whether the page still exists, then delete it here or redirect it. url_required: Enter the address in the default language. url_invalid: Start the address with / and leave out the domain. url_taken: Another page already uses this address. url_owned: This address belongs to :type “:title”. Set its SEO there. parent_loop: A page cannot be placed under itself or one of its subpages. delete_confirm: Delete this page from the registry? Its SEO tab is deleted with it, and the address leaves the sitemaps. A page the site reports comes back with its next report. delete_selected_confirm: one: "Delete :count page from the registry? Its SEO tab is deleted with it." other: "Delete :count pages from the registry? Their SEO tabs are deleted with them." home_title: Home autolinks: list_title: Auto-links name: Auto-link new: New auto-link list_empty: "No auto-links yet. Add a phrase and the page it should link to; texts then link its first occurrence automatically." from_keyphrases: Add focus keyphrases phrase: Phrase url: Links to locale: Language origin: Origin updated: Updated locale_all: All languages origin_manual: Manual origin_keyphrase: Focus keyphrase origin_mcp: MCP enabled: Active filter_active: Active only state_off: "Off" phrase_comment: "Linked at its first occurrence in a text, as whole words, ignoring letter case. Never inside headings or existing links, and never on the page it links to." url_comment: "A path such as /grzyby/lwia-grzywa, or a full address." note: Note keyphrases_added: one: ":count phrase added from focus keyphrases." other: ":count phrases added from focus keyphrases." keyphrases_none: "No new focus keyphrases to add." phrase_short: "Use at least 3 characters." phrase_taken: "This phrase already links to “:url” in this language." url_invalid: "Use a path starting with / or a full http(s) address." delete_confirm: "Delete this auto-link? Texts stop linking the phrase when their pages are next rendered." delete_selected_confirm: one: "Delete :count auto-link?" other: "Delete :count auto-links?" graph: action: "Check structured data" required: "Missing required property “:property” (:type)" recommended: "Missing recommended property “:property” (:type)" no_rules: ":type has no rich-result rules at Google; it is checked as valid schema.org only." all_good: "No problems: every node has its required and recommended properties." schema: invalid_json: "The custom JSON-LD is not valid JSON: :error" not_object: "The custom JSON-LD must be an object or a list of objects." too_large: "The custom JSON-LD may be at most 16 KB." too_deep: "The custom JSON-LD is nested more than 8 levels deep." script_tag: "Remove the script tag and paste only the JSON." type_unknown: "This schema type is not available for :type." field_invalid: ":field: :message" field_price: "Price" field_currency: "Currency" price_invalid: "Enter a price such as 150 or 149.99." currency_invalid: "Use a three-letter currency code, e.g. PLN." merged: "Saved. Your custom JSON-LD replaces :props in the generated :node node." crawls: start: "Start crawl" list_title: "Crawls" name: "Crawl" started_at: "Started" finished_at: "Finished" status: "Status" pages: "Pages" issues: "Issues" trigger: "Started by" duration: "Duration" site: "Site address" st_queued: "Queued" st_running: "Running" st_finished: "Finished" st_failed: "Failed" st_cancelled: "Cancelled" pages_limit: ":count (limit reached)" by_admin: "Manual: :name" by_schedule: "Schedule" by_mcp: "MCP: :client" trigger_admin: "Manual" trigger_schedule: "Schedule" trigger_mcp: "MCP" preview_title: "Crawl" preview: "Crawl of :url" running_title: "In progress" running_text: ":done pages fetched so far, up to :limit. Reload the page to see the progress." queued_text: "Waiting for a free worker. It starts within a minute." failed_title: "The crawl failed" failed_text: ":error. Pages fetched before the failure and their issues are kept." cancelled_text: "Cancelled by :name at :time." limit_text: "The crawl stopped at the limit of :limit pages. Raise the limit in SEO settings › Site audit to crawl the whole site." staging_text: "On this environment every page carries noindex from the non-production lock; the crawl does not report it." render_skipped: "The comparison with the JavaScript-rendered pages was skipped: no Chrome path is configured (golem15.seo.crawl_chrome_path). The raw-HTML checks ran." render_done: one: ":count page was compared with its JavaScript-rendered version." other: ":count pages were compared with their JavaScript-rendered versions." render_failed: "The comparison with the JavaScript-rendered pages stopped: :error. The raw-HTML checks ran." stat_pages: "Pages fetched" stat_errors: "Errors" stat_warnings: "Warnings" stat_notices: "Notices" stat_duration: "Duration" kinds_problem: "Problem" kinds_severity: "Severity" kinds_count: "Addresses" no_issues: "This crawl found no issues." cancel: "Cancel crawl" cancel_confirm: "Cancel this crawl? Pages fetched so far and their issues are kept." cancelled: "Crawl cancelled." delete_selected_confirm: one: "Delete :count crawl? Its pages and issues are deleted with it." other: "Delete :count crawls? Their pages and issues are deleted with them." delete_running: "A running crawl cannot be deleted. Cancel it first." list_empty: "No crawls yet. A crawl fetches the site like a search engine and lists what it finds in SEO › Site audit." started: Crawl started. Follow it in SEO › Crawls; the issues appear in Site audit when it finishes. already_running: A crawl is already running (started :time). Wait for it, or cancel it in SEO › Crawls. no_site_url: The site address for crawls is not configured (golem15.seo.site_url). Ask the administrator to set it. issues: list_title: "Site audit" name: "Issue" severity: "Severity" kind: "Problem" kind_code: "Problem code" url: "Address" summary: "Details" source: "Found by" fix: "Fix" found: "Found" locale: "Language" sev_error: "Error" sev_warning: "Warning" sev_notice: "Notice" source_crawl: "Crawl" source_cms: "CMS data check" fix_tool: "MCP: :tool" fix_code: "Site templates (code)" state_ignored: "Ignored" filter_severity: "Severity" filter_kind: "Problem" filter_source: "Found by" filter_fix: "Fix" filter_status: "Status" filter_fix_tool: "Fixable through MCP" filter_fix_code: "Needs a code change" status_open: "Open" status_ignored: "Ignored" preview: "Issue details" found_heading: "What was found" fix_heading: "How to fix" fix_tool_text: "Ask your MCP client to fix it with the tool “:tool”, or change it in the admin: :where." fix_code_text: "This comes from the site's templates, not from CMS data. Ask the site's developer to change :what." open_page: "Open the page" rich_results: "Check in Google's Rich Results Test" linked_from: "Linked from" orphan_suggestions: "Pages that could link here" orphan_suggestions_page: "Page" orphan_suggestions_phrase: "Shared phrase" orphan_none: "No suggestions: no other page mentions this page's title or focus keyphrase." and_more: "and :count more" recheck: "Check this address again" recheck_confirm: "Fetch “:url” again now and update its issues?" rechecked: one: "Checked again: :count issue remains for this address." other: "Checked again: :count issues remain for this address." recheck_fixed: "Checked again: no issues remain for this address." ignore: "Ignore issue" ignore_confirm: "Ignore this issue? It stays hidden in later crawls until you stop ignoring it." ignore_selected: "Ignore issues" ignore_selected_confirm: one: "Ignore :count issue? It stays hidden in later crawls." other: "Ignore :count issues? They stay hidden in later crawls." ignored: one: ":count issue is ignored." other: ":count issues are ignored." unignore: "Stop ignoring" unignore_confirm: "Show this issue in the audit again?" unignored: one: ":count issue is shown again." other: ":count issues are shown again." list_empty: "No issues. Problems found by the last crawl and by the CMS data checks appear here. Start a crawl to check the site again." detail_h1: "H1 headings" detail_skips: "Skipped levels" detail_missing: "Missing properties" detail_error: "Error" detail_anchors: "Links" detail_alternates: "Alternates" detail_images: "Images" detail_target: "Target" detail_what: "Missing or to change" where_record: "the SEO tab of the page" where_robots: "SEO › robots.txt" where_settings: "SEO settings" where_redirects: "SEO › Redirects" where_pages: "SEO › Pages" where_rules: "SEO › URL rules" kind_orphan_page: "Orphan page (no internal links)" sum_orphan_page: ":count suggestions" kind_h1_in_content: "H1 in the content" sum_h1_in_content: ":count H1 headings" kind_jsonld_invalid: "Structured data cannot be read" sum_jsonld_invalid: ":error" kind_jsonld_multiple: "More than one JSON-LD graph" sum_jsonld_multiple: ":count scripts" kind_jsonld_required: "Structured data misses a required property" sum_jsonld_required: ":type: :property" kind_jsonld_recommended: "Structured data misses a recommended property" sum_jsonld_recommended: ":type: :property" kind_hreflang_reciprocal: "hreflang has no return link" sum_hreflang_reciprocal: ":locale → :url" kind_hreflang_error: "hreflang points to an error page" sum_hreflang_error: ":locale → :url (:status)" kind_generic_anchor: "Generic link text" sum_generic_anchor: "“:text” → :target" kind_broken_link: "Link to a missing page" sum_broken_link: "From :count pages" kind_redirected_link: "Link to a redirect" sum_redirected_link: "Redirects to :target" kind_image_alt: "Image without alt text" sum_image_alt: ":count images" kind_image_size: "Image without width and height" sum_image_size: ":count images" kind_featured_lazy: "Main image loads lazily" sum_featured_lazy: "—" kind_content_js: "Content needs JavaScript" sum_content_js: "Missing from the raw HTML: :what" kind_page_status: "Page returns an error" sum_page_status: "Status :status" kind_sitemap_error: "Sitemap lists a page that does not answer 200" sum_sitemap_error: "Status :status in :file" kind_sitemap_noindex: "Sitemap lists a noindex page" sum_sitemap_noindex: "In :file" kind_sitemap_blocked: "Sitemap lists an address blocked in robots.txt" sum_sitemap_blocked: "Blocked by line :line" kind_sitemap_missing: "Indexable page missing from the sitemaps" sum_sitemap_missing: "Found through :count links" kind_canonical_missing: "No canonical link" sum_canonical_missing: "—" kind_canonical_error: "Canonical points to an error page" sum_canonical_error: ":url answers :status" kind_canonical_noindex: "Canonical points to a noindex page" sum_canonical_noindex: ":url" kind_canonical_redirected: "Canonical points to a redirect" sum_canonical_redirected: ":url → :target" kind_missing_title: "Missing title" sum_missing_title: "—" kind_duplicate_title: "Duplicate title" sum_duplicate_title: "Same as :count other pages" kind_missing_description: "Missing meta description" sum_missing_description: "—" kind_duplicate_description: "Duplicate meta description" sum_duplicate_description: "Same as :count other pages" kind_rule_overrides_record: "URL rule overrides the record" sum_rule_overrides_record: ":fields" kind_redirect_chain: "Redirect chain" sum_redirect_chain: ":count hops to :final" kind_noindex_blocked: "noindex page blocked in robots.txt" sum_noindex_blocked: "Line :line" kind_h1_missing: "No H1 heading" sum_h1_missing: "—" kind_h1_multiple: "More than one H1" sum_h1_multiple: ":count H1 headings" kind_heading_skipped: "Skipped heading level" sum_heading_skipped: "H:from → H:to" kind_heading_empty: "Empty heading" sum_heading_empty: "H:level" kind_h1_title_mismatch: "H1 does not match the title" sum_h1_title_mismatch: "“:h1”"