Files
sm-seo-plugin/lang/en/lang.yaml
Jakub Zych c4f0b4f94c feat: Site audit and Crawls screens with their MCP tools
- golem15.seo.issues (Site audit): current issues errors first, labels,
  summary and fix columns, filters, P7 issue_details, Check this address
  again, Ignore, Stop ignoring, bulk Ignore, ignored rows badged
- golem15.seo.crawls (Crawls): newest first, P6 crawl_summary with one
  status callout, staging and rendered-comparison lines, stats strip and
  per-kind table; Cancel; a running crawl refuses delete
- Start crawl toolbar action on both, refusing already_running and
  no_site_url; navigation Site audit (gauge) and Crawls (globe)
- routes and MCP tools start/cancel/list/get/delete crawls, list_issues
  with filters (open by default), recheck_url, ignore and unignore
- AdminOperations maps both controllers; toolbar actions get their own
  operation kind
- TestCrawlAdmin, TestCrawlTools, TestIssueKindLabels
2026-11-04 15:34:22 +01:00

735 lines
36 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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:
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
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”
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
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”"