plugin: name: SEO description: Search engine metadata for every content type, URL rules and global SEO settings. nav: 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 robots: 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: 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). 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 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. 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: 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. 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." 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."