=== Chronition SEO ===
Contributors: brajabandhu
Tags: seo, table of contents, sitemap, schema, redirects
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.3.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Complete SEO with a premium table of contents, Google-friendly sitemaps, IndexNow, schema, redirects and one-click migration from Rank Math.

== Description ==

Chronition SEO is a complete, lightweight SEO plugin. It covers everything a content site needs to rank, and it can replace Rank Math without editing a single page.

**Premium table of contents**

* A modern, accessible table of contents with numbered sections (1, 1.1, 1.2…), smooth scrolling, the current section highlighted while reading, and a floating "Contents" button with a reading-progress ring.
* Existing Rank Math "Table of Contents" blocks are automatically drawn with the new design — on every page, without updating any of them.
* Add it automatically to posts, or place it with the block or the `[cwseo_toc]` shortcode.
* "Match theme" style that blends in with any theme — it uses the theme's own fonts, link colour and background — plus card, outline and minimal styles; or pick a custom accent colour. Dark mode and print friendly.
* One or two columns (or automatic: two columns for long tables of contents), site-wide, per page, per block or per shortcode (`[cwseo_toc columns="2"]`). Always one column on phones.

**Titles, meta and social**

* SEO titles and descriptions for every post type, taxonomy, archive, search and 404 page, with the same `%variables%` as Rank Math.
* A post editor box with a live Google preview (desktop and mobile), length meters, a focus keyword and a content check with a score out of 100.
* Every page and post can override the site-wide settings: title and description, index/noindex, follow/nofollow, noarchive/nosnippet/noimageindex, Google preview limits (max-snippet, max-image-preview, max-video-preview), sitemap inclusion, table of contents (show/hide, title, heading levels), schema type, canonical URL, breadcrumb title, primary category and social cards. Each field shows the site default next to it, tabs with custom values are marked, and one click resets the page to the site defaults.
* Open Graph and X (Twitter) cards, canonical URLs, robots meta (noindex, nofollow, max-snippet…).

**Sitemaps and fast indexing**

* Google-friendly XML sitemaps at `/sitemap_index.xml` — the same address Rank Math uses, so Search Console keeps working — and at `/sitemap.xml`. Includes images, last-modified dates, and skips noindex and redirected content automatically.
* A "Your sitemap" panel with View and Copy link buttons, the number of links in each sitemap, and an "Update sitemap now" button.
* Optionally keep a real `sitemap.xml` file in the site folder, rewritten automatically when content changes.
* IndexNow instant indexing (Bing, Yandex, Seznam, Naver and others): new and updated posts are submitted automatically, plus manual and bulk submission with a log.

**Schema (structured data)**

* Organization or Person, WebSite with sitelinks search box, WebPage, Article/BlogPosting/NewsArticle, BreadcrumbList.
* FAQPage and HowTo rich results from Rank Math FAQ and HowTo blocks.
* Custom schema created in Rank Math (Product, Recipe, Event…) keeps being output.

**Redirects and 404 monitor**

* 301, 302, 307, 410 and 451 redirects with exact, contains, starts-with, ends-with and regex matching, hit counts, and CSV import/export.
* Automatic redirect when you change a published post's address.
* 404 monitor that shows which missing addresses people and search engines tried, with one-click "Redirect".

**Also included**

* Breadcrumbs (block, `[cwseo_breadcrumbs]` shortcode, and Rank Math's `[rank_math_breadcrumb]` shortcode and functions keep working).
* robots.txt editor.
* Automatic image alt and title text for images that have none.
* Open external links in a new tab and/or mark them nofollow.

**Moving from Rank Math**

1. Install and activate Chronition SEO. While Rank Math is active, Chronition SEO stays in standby — only the new table of contents design is applied, so you never get duplicate tags.
2. Go to Chronition SEO → Import & Tools and click "Import everything from Rank Math". Settings, per-post and per-category SEO data, and redirects are copied. Rank Math's data is not changed.
3. Deactivate Rank Math. Chronition SEO takes over immediately. Rank Math FAQ, HowTo and Table of Contents blocks keep displaying on your pages.

Even before importing, Chronition SEO reads Rank Math's saved titles, descriptions, robots and social fields, so nothing is lost at the moment of switching.

**Chronition SEO Pro (optional add-on)**

Everything above is free and complete. A separate Pro add-on is available at https://chronition.co.in/plugins/chronition-seo-pro/ for sites that need more: a schema builder (Product, Recipe, Event, Course, Video, Job, Review, Person, Book), Local SEO with multiple locations, a sticky sidebar table of contents, news and video sitemaps, 404 e-mail alerts with suggested redirects, a bulk SEO editor, multiple focus keywords with internal link suggestions, and WooCommerce product SEO.

**For developers**

Chronition SEO has filters and actions to extend the settings screens, the editor box, schema, sitemaps, the table of contents and title variables: `cwseo_admin_screens`, `cwseo_admin_sections`, `cwseo_settings_defaults`, `cwseo_metabox_tabs`, `cwseo_metabox_pane`, `cwseo_metabox_panes`, `cwseo_metabox_save`, `cwseo_schema_graph`, `cwseo_head_data`, `cwseo_sitemap_serve`, `cwseo_sitemap_index_entries`, `cwseo_sitemap_overview`, `cwseo_sitemap_exclude_post`, `cwseo_toc_config`, `cwseo_toc_html`, `cwseo_var`, `cwseo_404_before_list`, `cwseo_404_head_cols` and `cwseo_404_row_cols`.

== External services ==

This plugin can connect to the **IndexNow API** to tell search engines that a page was added, updated or deleted, so it is crawled sooner.

* Service: IndexNow, operated jointly by participating search engines (Microsoft Bing, Yandex, Seznam.cz, Naver and others), at https://api.indexnow.org/indexnow
* When: only if "IndexNow" is switched on under Chronition SEO → Sitemap & Indexing. It is off by default; importing from Rank Math switches it on only if Rank Math's own IndexNow (Instant Indexing) feature was in use. Then a request is sent when a post of a selected type is published, updated or deleted, or when you press one of the "Submit" buttons.
* What is sent: the page addresses (URLs), your site's host name, your IndexNow key and the address of your key file. No personal data about visitors or users is sent.
* Terms: https://www.indexnow.org/terms — FAQ: https://www.indexnow.org/faq — Privacy (Microsoft Bing, which runs api.indexnow.org): https://www.microsoft.com/en-us/privacy/privacystatement
* IndexNow is never contacted from local or non-public sites.

No other external requests are made. The plugin does not load any remote scripts, fonts or images.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install it from Plugins → Add New.
2. Activate it.
3. Open **Chronition SEO** in the admin menu. If you used Rank Math, follow the steps on the **Import & Tools** screen.
4. Submit `https://your-site/sitemap_index.xml` in Google Search Console if you have not already.

== Frequently Asked Questions ==

= Do I need to edit my pages after leaving Rank Math? =

No. Titles, descriptions, canonical URLs, robots settings, social images, primary categories, FAQ/HowTo blocks, table of contents blocks, breadcrumbs shortcodes, custom schema and redirects all keep working.

= Will my sitemap address change? =

No. It stays at `/sitemap_index.xml`. You can make `/sitemap.xml` the main address under Sitemap & Indexing; both keep working either way, and `/wp-sitemap.xml` is redirected.

= Can I have a real sitemap.xml file? =

Yes. Turn on "sitemap.xml file" under Sitemap & Indexing. A sitemap.xml file made by another tool is never overwritten, and the file is removed when you turn the option off or deactivate the plugin.

= How do I change SEO settings for one page only? =

Open the page in the editor and use the Chronition SEO box (the "Open SEO settings" button in the sidebar takes you there). Anything left on "Site default" follows the settings under Chronition SEO; anything you change applies to that page only.

= Can Chronition SEO and Rank Math be active together? =

Yes, but Chronition SEO waits in standby (only the table of contents design is applied) until Rank Math is deactivated, so both plugins never print the same tags twice.

= Does Google support IndexNow? =

Google does not use IndexNow; it discovers changes through your sitemap, which Chronition SEO keeps up to date with accurate last-modified dates. Google stopped accepting sitemap "pings" in 2023, so no plugin can ping Google any more.

= How do I add the table of contents to a page? =

Turn on "Add automatically" for the post types you choose, or insert the "Table of Contents" block (Chronition SEO) or the `[cwseo_toc]` shortcode. To hide it, always show it, or change its title, heading levels or columns on one page, use the "Table of contents" tab in the page's SEO box.

= Can the table of contents look like part of my theme? =

Yes. Choose the "Match theme" style under Chronition SEO → Table of Contents. It takes the fonts, link colour and background from your theme on each page, so it fits any design without custom CSS.

= How do I show breadcrumbs? =

Use the "Breadcrumbs" block (Chronition SEO), the `[cwseo_breadcrumbs]` shortcode, or `<?php if ( function_exists( 'cwseo_breadcrumbs' ) ) cwseo_breadcrumbs(); ?>` in your theme.

= What happens when I delete the plugin? =

Its settings, tables and saved SEO fields are removed. Rank Math data, if any, is left untouched.

== Screenshots ==

1. The premium table of contents on a post, with numbered sections and the current section highlighted.
2. The floating "Contents" button with reading progress.
3. The editor SEO box: every setting can follow the site default or be overridden for one page.
4. Table of contents settings: style (including Match theme), one or two columns, with a live preview.
5. One-click import from Rank Math.
6. Redirects manager.
7. Your sitemap: view or copy the link, link counts, and "Update sitemap now".
8. The "Match theme" table of contents in two columns, picking up the theme's fonts and link colour.

== Changelog ==

= 1.3.1 =
* Fix: works on PHP 7.4 when external-link options are on.
* Fix: table of contents options taken from blocks are validated before they are stored in the page.
* Fix: the page title set by the plugin is escaped.
* Updated the IndexNow privacy link.

= 1.3.0 =
* New: filters and actions for extensions — settings screens and sections, editor box tabs and fields, sitemap files and index entries, table of contents options, title variables and the 404 log list.
* New: "Go Pro" link on the Plugins screen for the optional Pro add-on.

= 1.2.1 =
* New: automatic table of contents can be kept off the front page (off there by default).
* New: no automatic table of contents on pages that already have one — a Rank Math or Chronition SEO block, the [cwseo_toc] shortcode, WordPress's own block or common TOC plugins — so a page never shows two (on by default).

= 1.2.0 =
* New: "Match theme" table of contents style, and the automatic colour now follows your theme's real link colour, fonts and background (also for the floating button and panel).
* New: one-column, two-column or automatic layout for the table of contents — site-wide, per page, on the block and with `[cwseo_toc columns="2"]`.

= 1.1.0 =
* New: per-page overrides for indexing, follow, snippet limits, sitemap, table of contents, schema and social, with "Site default" hints and a one-click reset.
* New: "Chronition SEO" panel in the block editor sidebar.
* New: "Submit this page to IndexNow now" button in the editor.
* New: sitemap panel with View / Copy link, link counts and "Update sitemap now".
* New: `/sitemap.xml` as the main sitemap address, and an optional real sitemap.xml file.
* New: SEO menu in the toolbar with a "View sitemap" link.

= 1.0.0 =
* First release.

== Upgrade Notice ==

= 1.3.1 =
PHP 7.4 compatibility and security hardening.

= 1.3.0 =
Developer hooks for extensions. No changes to how your site works.

= 1.2.1 =
Automatic table of contents: front-page option, and no duplicate when a page has its own TOC block.

= 1.2.0 =
Table of contents: "Match theme" style and two-column layout.

= 1.1.0 =
Per-page SEO overrides and sitemap.xml options.

= 1.0.0 =
First release.
