=== Instant Indexing & Check for Google and Bing SEO === Contributors: arthurseofr Tags: google indexing, bing indexing, instant indexing, index checker, search console Requires at least: 5.8 Tested up to: 6.9 Stable tag: 2.0.0 Requires PHP: 7.4 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Index and check your pages on Google and Bing. Force Google indexing, submit URLs to Bing and track indexing status from WordPress. == Description == **Instant Indexing & Check** gets your WordPress content indexed faster on **Google and Bing**, and shows you which pages each search engine has actually indexed, right from your dashboard. Getting pages discovered is the biggest SEO bottleneck today. Google skips pages because of crawl budget, and a page missing from Bing is also missing from Microsoft Copilot, Yahoo and DuckDuckGo, which rely on Bing's index. === Two dashboards: Google and Bing === Switch the dashboard between a **Google view** and a **Bing view** in one click. Each view shows only its own search engine: indexing status, statistics, filters and actions. Google Search Console data stays in the Google view, Bing data in the Bing view. IndexNow (free) is available to everyone; Bing index checks and manual Bing submissions are Premium. === Free, with no setup: IndexNow === Turn on **IndexNow** in one click and every page you publish or update is announced instantly to Bing, Yandex, Naver and the other IndexNow search engines. No account, no API key, no configuration. A "Submit whole site" button covers your existing content. === Core Features === The plugin is divided into two major capabilities: **Checking Status** and **Indexing**. **1. Verification Modes (Check Status)** * **Google API Mode (Free):** Use your own Google Cloud Service Account (JSON key) to check the Google Search Console status of your URLs. It is free but requires a complex setup and is subjected to strict Google API quotas. * **NO API Mode (Premium):** Skip the complex Google Cloud API configuration. Our "NO API" mode allows you to check your URL's indexing status instantly. It consumes 0.2 credits per check, requires zero technical setup, and bypasses daily Google API limits. * **Bing Index Check (Premium):** See which of your pages are indexed on Bing, one by one or in bulk, with no Bing Webmaster Tools account needed. Consumes 0.2 credits per check. **2. Indexing Modes** * **Google API Indexing (Free):** Send indexing requests directly to Google via the standard Google Indexing API. This is basic indexing with an average success rate. * **Premium Force Index (Premium):** A high-performance, authoritative indexing service boasting an over 90% success rate for stubborn and hard-to-index URLs. Stop waiting weeks for Google to index your content. Consumes 1 credit per URL. * **Instant Indexing (Premium):** Directly push your URLs to Google's crawler. Your links show up in the Google index in just 1 to 5 minutes. Best for time critical pages and hard to index links. Consumes 10 credits per URL. * **IndexNow (Free):** Bing's free indexing, with no account or setup. Announce pages to Bing, Yandex and Naver on publish, by hand, or for the whole site at once. * **Bing Indexing (Premium):** From the Bing view, actively get the pages missing from Bing indexed, one by one or in bulk. Bulk submission targets pages not indexed on Bing. Consumes 10 credits per URL. **3. Auto-Indexing** * Automatically send your new posts or updated pages to Google the exact moment you hit publish. You can choose to auto-index using the Free Google API or force it with Premium indexing. **4. WooCommerce Support** * If WooCommerce is installed, your **product pages** are indexed and checked just like posts and pages, and your **product categories, tags and brands** are available in the category indexing screen. Perfect for online stores with hundreds of products that Google never crawls. You can turn the integration off at any time from the settings. === Why go Premium? === The Premium version unlocks the **NO API** check mode, the **Premium Force Index** network, **Instant Indexing** and the full **Bing view** (Bing index checks and Bing indexing), saving you hours of tedious API configuration while guaranteeing unparalleled indexing speed. You manage your credits directly from the dashboard. == Privacy & Terms == This plugin relies on the following external services to function: 1. **Google Indexing API & Search Console API** - **Used for:** Sending indexing requests to Google and checking URL status (in Google API Mode). - **Data Sent:** The URLs of your content and your Google Cloud Service Account credentials (stored locally). - **Privacy Policy:** [Google Privacy Policy](https://policies.google.com/privacy) 2. **Instant Indexing Premium Relay (wp-instant-indexing.com)** - **Used for:** Free sign-up, license validation, "Premium" indexing requests (Google and Bing), NO API and Bing status checks, credit history, starting a credit purchase, and messages you send from the Feedback window. - **Data Sent:** Your email address (sign-up, purchase, lost key, feedback), your site URL, your license key, and the specific URLs you request to index/check. When you send feedback: your message and the WordPress, PHP and plugin versions; technical details (plugin settings, active plugin names, the last 25 console lines) only if you tick the box, with a preview before sending. Nothing is sent without your click. - **Privacy Policy:** [WP Instant Indexing Privacy Policy](https://wp-instant-indexing.com/privacy.php) 3. **Stripe (checkout.stripe.com)** - **Used for:** Paying for a subscription or a credit pack. Checkout opens in a new browser tab only when you click a pack; the plugin itself never handles payment details. - **Data Sent:** Your email address and the chosen pack (card details are entered on Stripe's page). - **Terms & Privacy:** [Stripe Privacy Policy](https://stripe.com/privacy) 4. **IndexNow (api.indexnow.org)**, optional and off by default - **Used for:** Announcing your published or updated pages to Bing, Yandex, Naver and other participating search engines, once you turn IndexNow on. - **Data Sent:** The URLs of your published pages, your site's host name and a verification key served at your site's root. - **Terms:** [IndexNow Terms](https://www.indexnow.org/terms) == Installation == 1. Upload the plugin files to the `/wp-content/plugins/instant-indexing-check` directory, or install the plugin through the WordPress plugins screen directly. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Click on the "Instant Index" menu item, then start for free with your email or enter your license key. 4. You land directly on the dashboard. Turn on IndexNow (free, no setup) and, when you want free Google indexing, click "Connect Google" to follow the guided Google Cloud setup. Premium users need no Google setup at all. 5. Switch between the Google and Bing views with the selector at the top of the dashboard. == Frequently Asked Questions == = Do I need a Google Cloud account? = If you choose the "Google API" mode, yes. You will need to create a Service Account in Google Cloud, enable the Search Console API, and provide the JSON key. If you choose the "NO API" mode (Premium), you do not need any Google Cloud account or technical configuration. = How do credits work? = Premium features use credits: * Checking a URL's status using NO API mode costs **0.2 credits**. * Checking a URL on Bing costs **0.2 credits**. * Forcing indexing using Premium Indexing costs **1 credit**. * Submitting a URL via Instant Indexing costs **10 credits**. * Submitting a URL to Bing costs **10 credits**. You can view your remaining balance in real-time in the plugin dashboard and top it up via your account. = Can I use both modes? = Yes! If you are a Premium user, you can configure the free Google API for standard tasks and switch to Premium indexing for specific stubborn URLs directly from the dashboard actions. = Can I check if my pages are indexed on Bing? = Automatically, with Premium: switch to the Bing view and run "Check PREMIUM" on your posts, with no Bing Webmaster Tools account needed. For free, each row has a link that opens Bing's own "url:" lookup for that page. Bing offers no free API to check indexing (its search API was shut down in 2025), so there is no free automatic check. = Why should I care about Bing indexing? = Bing's index also powers Microsoft Copilot, Yahoo and DuckDuckGo. A page missing from Bing is invisible on all of them. The Bing view shows you which pages are missing and lets you submit them in one click. = Does the Bing view change my Google data? = No. Google and Bing statuses are tracked separately: checking or submitting a page to Bing never changes its Google Search Console status, and the other way around. Excluding a URL applies to both views. = What is IndexNow, and does it cost credits? = IndexNow is a free, open protocol created by Bing and Yandex and supported by Naver and others. There is no account or setup: the plugin publishes a key at your site root to prove the site is yours, then tells the engines about each page you publish or update. It is free and uses no credits. It is Bing's free indexing, the same role "Index Google" plays for Google: a signal, after which the engine decides whether to index the page. Premium Bing indexing (10 credits) actively gets the page indexed. In the Bing view, pick "IndexNow" in the "Bing Auto Indexing" selector to announce every new post, use the ⚡ button to announce selected pages, or "Submit whole site" for your existing content. It is off by default. = Can I buy more credits without leaving WordPress? = Yes. Premium users can top up credits directly from the dashboard: pick a pack, pay on Stripe's secure checkout in a new tab, and your balance updates automatically as soon as the payment is confirmed, no key to copy or paste. A full history of every credit movement (purchases, renewals, usage) is available from the dashboard too. == Screenshots == 1. Dashboard view with indexing status, bulk actions, and filters. 2. Configuration settings: Choose between Google API and NO API modes. == Changelog == = 2.0.0 = * New: Feedback window. Report a problem, suggest an idea or ask a question without leaving WordPress (💬 Feedback button, Support menu, console, FAQ). Technical details are attached only if you tick the box, and you can preview them first. The author replies by email. * Fix: In Advanced Options, the external URL box counted a whole pasted list as one URL in the cost confirmation, and showed a literal "\n" in its hint and confirmation. * Improved: When the Premium Check service cannot be reached, the message now says why (timeout, HTTP error) and confirms that no credit was charged. * New: IndexNow support (free, no setup): Bing's free indexing, which also notifies Yandex and Naver. Announce pages automatically on publish, by hand with the ⚡ button, or all at once with "Submit whole site". Off by default. * New: The Bing view works like the Google view: free indexing (IndexNow) and Premium indexing (10 credits), free manual checking (url: lookup) and Premium automatic checking, and a "Bing Auto Indexing" selector (Disabled / IndexNow / Premium Bing) mirroring the Google one. * New: Buy credit packs directly from the dashboard (Stripe checkout in a new tab, balance updates automatically) and review your full credit history at any time. * New: "Google → Bing gap" filter in the Bing view highlights pages already indexed on Google but not yet sent to Bing, so you know exactly what to submit next. * New: Purchases started from the dashboard activate automatically when you return to WordPress after paying, no license key to copy. * New: Page history. A clock icon next to each page shows every submission and check with its date, and how many days it actually took to get indexed. * New: The Bing view is open to everyone, with the same date limits as the Google view on the free plan. * New: "Lost your key?" link on the welcome screen resends your license key by email. * New: Guided tour. A one-minute interactive walkthrough highlights each part of the dashboard; it starts on first use and can be replayed anytime. * New: "First steps" checklist that ticks itself as you go (IndexNow, Google connection, first check, first submission, autopilot), with a one-click action for each step. * New: "What to do next" tips under the statistics, based on your real numbers (pages never checked, not indexed, pending, Google→Bing gap), and a status legend. * New: "Test the Google connection" checks each setup step (key, enabled APIs, Owner access, property) and points to the exact step to fix, with a one-click fix when the wrong property was entered. The JSON key and property are also validated as you type. * Fix: Reopening the settings to change the language no longer overwrites a "Domain" (sc-domain:) Search Console property with the site URL, nor asks to paste the JSON key again. * Fix: Saving the Google settings now reports server-side errors instead of reloading as if everything was saved. * Improved: Times now follow your site's time zone (Settings > General) everywhere. The console showed UTC times without the year; it now shows the full local date and time down to the second (older entries are converted), and states the time zone used. * Improved: The page list shows the time of the last modification, not just the date, to match operations with manual or automatic changes. * Fix: The 7/30/90-day filters compared UTC dates with the database server's local clock, shifting the window by a few hours depending on the host. The custom date range now uses your site's days. * Fix: Resetting or excluding a category did nothing. * Fix: The credit history shows times in your site's time zone. * Security: Console reading and clearing now require the WordPress security token; console messages are escaped before display. * Improved: Starting for free now takes you straight to the dashboard. Connecting Google (needed for free Google indexing and checks) is offered there as an optional step instead of blocking access. * Improved: If your server does not let WordPress serve the IndexNow key file, the plugin writes it at your site's root and warns you when search engines cannot reach it. * Improved: Coming back to the dashboard tab after a purchase refreshes your balance and plan automatically. * Fix: A single-URL Premium check ("Check PREMIUM" on one row) always reported "not indexed" and was never actually billed by the verification service. It now reads the real result and is billed correctly, once. * Fix: The automatic Google indexing mode is now available on the Free plan too. Only the Premium-only modes (Premium Force, Turbo) still require Premium; before this release the whole selector was locked out for Free users. * Improved: Background checks now keep running via WordPress cron even if you close the tab; reopening the dashboard picks up the result. * Improved: Credit balances are no longer rounded down to a whole number when displayed or synced, so fractional balances (checks cost 0.2 credits) stay accurate. * Removed: The "refunded after 7 days if not indexed" mention has been removed from the pricing pages; it did not reflect how refunds are actually handled. = 1.7.7 = * New: Bing view. A Google / Bing selector switches the dashboard to a dedicated Bing interface (Premium) that only shows Bing data: Bing indexing status, statistics, filters and actions. Google Search Console data stays in the Google view. * New: Bing index check. See which pages are indexed on Bing, one by one or in bulk (0.2 credits per URL). * Improved: Bing indexing now lives in the Bing view. Bulk submission targets pages not indexed on Bing, and a page submitted recently stays "waiting" instead of being reported as not indexed. * Fix: "Select all" and bulk actions now respect the search box. Selecting all while a search was active could target every URL on the site. * Fix: A Premium check resumed after a page reload could be charged twice. = 1.7.6 = * New: Bing indexing. Send your URLs to Bing individually or in bulk from the dashboard (10 credits per URL). Bing has its own action group and a separate "Bing" tag under the Google status, so the two search engines are never mixed up. Pages already indexed on Google can now be sent to Bing too. * New: Bulk Bing submissions skip URLs already sent to Bing, so credits are not spent twice by mistake. You can still resend them on purpose. * Tweak: The status column is now labelled "Indexing", since it shows both Google and Bing. = 1.7.5 = * Fix: The article search box now actually filters the list. It was silently ignored whenever the list was set to show "All", and it now searches both the title and the URL. * New: If your Premium access has expired, the dashboard offers a 50% welcome-back discount. The discount is applied automatically at checkout, and the message can be dismissed. = 1.7.4 = * Critical fix: indexing actions could crash with a PHP memory error (an infinite loop introduced in 1.7.2). This is what produced the "JSON.parse: unexpected end of data" and "Unexpected token" messages in the dashboard. Please update. Sorry for the disruption. = 1.7.3 = * Fix: Premium indexing could display a raw "JSON.parse: unexpected end of data" error. This happened when the server response was cut short (hosting time limit) even though the request had actually gone through. Such URLs now stay in "waiting" instead of showing a false error, and the plugin always returns a readable message. * Fix: When the indexing service accepts a request but confirms it too late, the URL is now correctly kept as "waiting" and your credit balance stays accurate. * Fix: Technical browser errors such as "JSON.parse: unexpected end of data" or "Unexpected token '<'" are no longer shown. Every server response is now read safely and replaced by a clear message explaining what to do. * Fix: Sites with a large number of URLs could hit their hosting time or memory limit when selecting all URLs, resulting in a blank response. The plugin now raises those limits for that request. * Tweak: The waiting badge is less cluttered — how long a URL has been waiting now appears when you hover over it. = 1.7.2 = * New: URLs waiting to be indexed now show how long they have been waiting ("waiting 2d"), so you know when it is worth running a check again. Hovering the badge explains that Google usually takes 24-48h. = 1.7.1 = * Fix: Check and indexing results are now always saved. In some setups the plugin could not match a URL back to its post (trailing slash, custom post types, unusual permalinks), so the new status was shown on screen but never stored — and the counters reverted to their previous values on reload. The dashboard now sends the content ID directly, with several URL fallbacks. Thanks again to Philippe for the report. = 1.7.0 = * Fix: Auto-indexing no longer submits internal or non-public content to Google. It now only sends posts, pages and WooCommerce products, and skips revisions, private or password-protected content, and any URL that is not final yet (e.g. ?post_type=...&p=123). Thanks to Philippe for the report. = 1.6.9 = * New: WooCommerce support. Product pages are now included alongside posts and pages, and product categories, tags and brands appear in the category indexing screen. * New: A WooCommerce toggle in the settings lets you turn the integration on or off at any time (shown only if WooCommerce is installed). = 1.6.8 = * Critical fix: the dashboard could reload itself over and over in 1.6.7, making the plugin page unusable. Fixed. Sorry for the inconvenience. = 1.6.7 = * Instant Indexing is temporarily unavailable while the service is being fixed. The feature is hidden from the dashboard and blocked server-side, so no credits can be spent on it. It will switch back on automatically once the service is restored — no plugin update needed. Google indexing and Premium Force Index are unaffected. = 1.6.6 = * New: The tutorial video now adapts to the admin language — English-speaking users get an English-narrated version automatically (falls back to the default video otherwise). * New: The Premium status check now shows the estimated time remaining while a check is running. * Tweak: Clearer, more consistent wording in relay/connection error messages. = 1.6.5 = * New: Guided onboarding — a step-by-step wizard walks you through the Google Search Console / API setup, with click-by-click details for each step (create the service account, enable the 2 APIs, download the JSON key). * New: When you paste your JSON key, the plugin now auto-extracts the service account email and gives you a one-click "Copy" button, plus the exact steps to add it as an Owner in Search Console (the most-forgotten step). * New: The admin interface now auto-detects your browser language (English/French) on first use, unless you set a language manually. * Fix: Auto-indexing on publish for Premium and Instant modes now works correctly (it was previously inactive due to a logic bug). * Fix: A running Premium bulk check now resumes automatically if you reload the page, so results are never lost. * Security: Added CSRF nonce verification to the logout and free-mode activation actions. * Performance: Admin assets are now cached by the browser and refreshed only on plugin updates (faster dashboard loads). * Tweak: More robust handling of license activation when the server response is unexpected. = 1.6.1 = * UI/UX: Redesigned action buttons (Check Google, Index Google, Turbo) into a cleaner pill-style layout with helpful tooltips. * Fix: Bulk actions (Check and Index) now strictly ignore URLs marked as "Excluded". * Enhancement: Better error handling for Speedy/Relay timeout errors. The system gracefully sets the status to "Waiting" instead of displaying intrusive error popups. * UI/UX: Added dynamic cost indicators inside tooltips for Premium actions (Index, Check, Turbo). * Fix: Restored the manual "Refresh" button in the header. = 1.5.5 = * Fix: "Select All" now correctly respects the active status filter (e.g. "Waiting") — the count and bulk action only target URLs matching the selected filter. = 1.5.4 = * Fix: Global selection counters now strictly respect active date filters, excluding categories to prevent inflated counts during bulk actions. = 1.5.3 = * Fix: Stat cards (Indexed, Not Indexed, %) now update in real-time after every check or indexing action, without a page reload. * Fix: Page selection is now correctly isolated — changing page clears the selection to prevent inconsistent counters. * Fix: The confirmation popup always shows the accurate number of URLs (current page selection only in page mode). * Fix: The selection banner shows the exact number selected on the current page, with the "Select All" button only shown when necessary. = 1.5.2 = * New: 90-day filter (Premium) added to the article dashboard. * New: Custom date range filter with a calendar picker (Premium) — freely choose your start and end dates. * New: Enriched admin stats — Instant Index in KPIs, 6-month chart per user, detailed per-user stats modal, expired filter. * New: -50% reactivation banner for users whose Premium subscription has expired (both in the WordPress plugin and the SaaS dashboard). = 1.5.1 = * Fix: Addressed bulk URL processing count accuracy for internal plugin logging. * New: Added Category Indexing support on the marketing landing page and user stats display fixes in the admin SaaS dashboard. = 1.5.0 = * New: Added "Instant Indexing" functionality. Directly submit your URLs to Google's crawler and have them appear in the index within 1 to 5 minutes! = 1.4.9 = * New: FAQ & Help page integrated into the dashboard to clearly explain feature functionality, Google vs. Premium modes, and quota limits. * Tweak: Clarified Premium usage limits - Free users are now strictly locked from querying historical URL data beyond the past 30 days. = 1.4.8 = * Fix: Added support for Search Console Domain properties when the user enters a bare domain like `mondomaine.fr`. * Fix: Improved Search Console setup help text and validation for `sc-domain:` property values. * Fix: Added better logging for URL inspection requests to simplify debugging of forbidden Search Console errors. = 1.4.7 = * Fix: URL statuses were not automatically updated after a bulk Google indexing job — the table now refreshes itself at the end of every operation. * Fix: Credit balance was not synced when reopening the plugin — credits are now silently reloaded from the server on dashboard load. * Fix: Removed the 60-URL cap on bulk Premium checks 400+ URLs can now be sent in a single operation. = 1.4.6 = * Fix: Premium checks (NO API mode) no longer show a "Timeout" error when the service is under heavy load. The check now runs without a time limit as long as the page is open. * New: A patience notification is displayed after 30 seconds, informing the user that the check is still running and asking them not to close the page. * New: Pending check tasks are now persisted in the database. If the user closes and reopens the plugin before the check completes, the polling automatically resumes and the results are displayed upon completion — no credit loss. * Fix: URLs sent to Premium Indexing in bulk are now correctly marked as "Waiting" in the database so they appear in the "Pending" tab even after a page reload. * Tweak: Increased all relay server timeouts to better handle high-load periods. = 1.4.5 = * New: The plugin's activity console has been completely redesigned into an interactive live view. You can now filter logs (Errors, Success, Info) and search actions in real-time. * New: Exhaustive logging added. Important actions such as plugin configuration, bulk operations, and post deletions are now properly recorded in your console for full transparency. * New: Category Indexing is now natively supported. You can bulk check and index WordPress Categories directly from the Advanced Options. * Tweak: Added a manual "Refresh" button on the dashboard to instantly update and sync your live credit balance. = 1.4.1 = * Fix: Prevented API timeouts when checking large blocks of URLs. * Fix banner = 1.4 = * New: Added an awesome "Advanced Options" modal inside the dashboard, featuring two powerful Premium tools. * New: Export your currently filtered URLs directly to a CSV file in one click. * New: "WordPress Cleanup" tool automatically trashes all posts with a 'Not Indexed' status without leaving the dashboard. * New: The native WordPress posts table (Articles > All articles) now features a fully stylized status filter dropdown. * Tweak: Massive visual improvements for advanced indexation modes and UI components. * Fix: Prevented API timeouts when checking large blocks of URLs. = 1.3.7 = * Fix: Complete backend overhaul for pagination and filters to establish maximum stability when handling hundreds of URLs. * Fix: "Global Selection" now correctly targets precise URLs based on the active table filter (ex: not indexed only). * New: Real-time and accurate rendering of global statistics fetched directly from the database. = 1.3.6 = * Performance optimization for the indexing speed and security patch. = 1.3.5 = * Indexing speed optimization. = 1.3.4 = * Patch blank screen = 1.3.2 = * New: Added a discrete "Advanced option" panel for Premium users to submit and index external URLs using the Premium Force Indexer network. * Tweak: Formatted credit display to show one decimal place. = 1.3.1 = * Fix: Addressed selection bug where filtering did not reset "select all" properly. * Fix: Real-time update of the global Statistics Bar directly after checking an URL status. = 1.3.0 = * New: Added global status filter chips (All, Indexed, Not Indexed, Waiting, Unknown) for rapid table filtering. * New: Live Statistics Bar showing global indexation rate and categorized totals right in the dashboard. * Fix: Prevented routing loop during initial setup when selecting the "NO API" mode. * Tweak: Improved UI aesthetics for the dashboard stats bar and translations. = 1.2.2 = * New: Added a per-page URL count selector (20, 50, 100, All). * New: Premium re-submission button (🔄) for URLs stuck in "Waiting" status. * New: Advice message to improve content and use Google Search Console before re-submitting. * Fix: Already indexed pages now only display the GSC link, no redundant actions. = 1.2.1 = * Integration of a native tutorial video player into the plugin (replacing the Twitter/X tweet). * Improved multi-site tracking: all sites linked to a license are recorded. = 1.2 = * Launched "NO API" Mode for instant status checking without Google Cloud setup. * Revamped dashboard UI with separate Google and NO API/Premium bulk check and index actions. * Added exact credit cost estimations before confirming actions. * Minor UI and support link fixes. = 1.1 = * Added Auto-indexing feature. * Support for credit-only licenses. * Included translations (English / French). = 1.0 = * Initial release. * Added dual indexing mode (Google API + Premium Relay). == Upgrade Notice == = 2.0.0 = Fixes single-URL Premium checks (previously always reported "not indexed"), opens automatic Google indexing to Free users, and adds free IndexNow support, in-dashboard credit purchases and a Google→Bing gap filter. Fully backward compatible.