{"id":1361,"date":"2025-09-12T12:40:05","date_gmt":"2025-09-12T12:40:05","guid":{"rendered":"https:\/\/www.softnoesis.com\/blog\/?p=1361"},"modified":"2025-09-12T12:42:41","modified_gmt":"2025-09-12T12:42:41","slug":"check-google-indexing-status-automatically-using-n8n-and-sheets","status":"publish","type":"post","link":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/","title":{"rendered":"Check Google Indexing Status Automatically Using n8n and Sheets"},"content":{"rendered":"<p>If you\u2019ve ever managed SEO for a large website, you already know how painful it can be to manually check whether all your important URLs are indexed in Google. For smaller sites, running the occasional \u201csite:\u201d search works fine. But when you\u2019re handling hundreds or even thousands of URLs across different projects, it becomes nearly impossible to stay on top of indexing status without automation.<\/p>\n\n\n<p>Indexation is one of the most fundamental SEO signals. If your page isn\u2019t indexed, it simply cannot rank\u2014no matter how well-optimized the content might be. That\u2019s why agencies, in-house SEO teams, and site owners constantly monitor index coverage. Traditionally, you would rely on tools like Google Search Console or perform manual \u201csite:domain.com\/page\u201d checks, but these methods are limited. They require repetitive work, don\u2019t provide historical tracking, and fail to scale with the size of modern content operations<\/p>\n\n\n\n<p>This is exactly the problem we set out to solve with an automated n8n workflow. Instead of manually verifying each URL, the workflow periodically runs checks, simulates human browsing with randomized delays and browser fingerprints, fetches Google\u2019s response for each URL, and then determines whether the page is indexed. Most importantly, it automatically logs these results into Google Sheets, so you have a living record of every URL\u2019s status.<\/p>\n\n\n\n<p>By combining n8n\u2019s powerful automation nodes with simple JavaScript functions, we can replicate the manual process of checking indexation, but in a way that is repeatable, scalable, and resilient against being blocked by Google. This means you can focus on fixing indexation issues rather than wasting hours trying to find them.<\/p>\n\n\n\n<p>In this step-by-step guide, I\u2019ll walk you through the exact workflow I built in n8n to automate Google indexing checks. You\u2019ll see how we:<\/p>\n\n\n\n<ul>\n<li>Trigger the workflow automatically every 8 hours.<\/li>\n\n\n\n<li>Maintain a clean list of target URLs.<\/li>\n\n\n\n<li>Generate Google \u201csite:\u201d queries dynamically.<\/li>\n\n\n\n<li>Loop through each URL one by one with random delays.<\/li>\n\n\n\n<li>Rotate User-Agent headers to mimic real users.<\/li>\n\n\n\n<li>Parse the search results to determine if a page is indexed.<\/li>\n\n\n\n<li>Log everything neatly in Google Sheets for analysis.<\/li>\n<\/ul>\n\n\n\n<p>By the end of this tutorial, you\u2019ll have a reliable system that can monitor indexing status for hundreds of URLs without lifting a finger.<\/p>\n\n\n\n<p><strong>Step 1: Setting Up the Trigger<\/strong><\/p>\n\n\n\n<p>The first building block of this workflow is the <strong>trigger<\/strong>. Without it, you\u2019d have to manually start the process every time, which defeats the purpose of automation. Instead, we want our indexing checks to run on a schedule\u2014quietly in the background\u2014so that our Google Sheet is always up to date with the latest results.<\/p>\n\n\n\n<p>In n8n, this is handled by the <strong>Cron Trigger node<\/strong>. The Cron node is incredibly flexible; it lets you schedule workflows to run at fixed intervals, specific times of day, or even just once on a certain date. For our indexing checker, we set it to run <strong>every 8 hours daily<\/strong>. This ensures that if Google\u2019s index changes\u2014whether pages get added or drop out\u2014we\u2019ll detect it within a reasonable timeframe without constantly bombarding Google with requests.<\/p>\n\n\n\n<p>Here\u2019s how the Cron node was configured:<\/p>\n\n\n\n<ul>\n<li><strong>Trigger Type<\/strong>: Every X hours<\/li>\n\n\n\n<li><strong>Value<\/strong>: 8<\/li>\n\n\n\n<li><strong>Time Zone<\/strong>: Your server or project\u2019s preferred time zone (important for consistency<\/li>\n<\/ul>\n\n\n\n<p>This means the workflow automatically fires three times per day (every 8 hours). That frequency is a sweet spot: it\u2019s frequent enough to catch indexation changes quickly, but not so frequent that it risks unnecessary load or triggering anti-bot defenses.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"445\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x445.png\" alt=\"\" class=\"wp-image-1364\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-1024x445.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-300x130.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-768x333.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1-100x43.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-1.png 1359w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Why periodic scheduling matters<\/strong><\/p>\n\n\n\n<p>Indexing is not static. A URL that is indexed today might be deindexed tomorrow due to crawl budget issues, canonical conflicts, noindex tags, or algorithmic changes. By running checks automatically, you create a historical log of indexation health, which is incredibly valuable for diagnosing long-term SEO problems. For example:<\/p>\n\n\n\n<ul>\n<li>You can spot patterns (e.g., blog posts drop out of the index after 30 days).<\/li>\n\n\n\n<li>You can catch sudden deindexing (e.g., a technical change causing mass removals).<\/li>\n\n\n\n<li>You can provide clients or stakeholders with transparent reporting (\u201cHere\u2019s the day Google dropped 40 of our URLs\u201d).<\/li>\n<\/ul>\n\n\n\n<p>Once this node is in place, the workflow doesn\u2019t need any manual input to start. It becomes a <strong>hands-free system<\/strong> that wakes itself up every 8 hours, prepares the next batch of URLs, and checks their status.<\/p>\n\n\n\n<p><strong>Step 2: Defining the URL List<\/strong><\/p>\n\n\n\n<p>With the trigger in place, the next step is to tell our workflow <strong>which URLs<\/strong> we want to monitor. In n8n, the easiest way to do this is with the <strong>Set Node<\/strong>. This node lets us create and store static values that can be passed down to other nodes in the workflow. In our case, we\u2019re going to define a list of URLs that need their indexing status checked.<\/p>\n\n\n\n<p>Inside the <strong>Set Node<\/strong>, I created a new field called urlList. Under the <strong>Value<\/strong> section, I entered all the URLs I want to track, separated by commas. For example:<\/p>\n\n\n\nhttps:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/,\nhttps:\/\/www.vesbhusha.com\/common-mistakes-to-avoid-when-choosing-corporate-uniforms\/,\nhttps:\/\/www.vesbhusha.com\/importance-of-uniforms-in-branding\/\n\n\n\n<p>When this node executes, the output is a JSON object containing that single field:<\/p>\n\n\n\n{\n  &#8220;urlList&#8221;: &#8220;https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/, https:\/\/www.vesbhusha.com\/common-mistakes-to-avoid-when-choosing-corporate-uniforms\/, https:\/\/www.vesbhusha.com\/importance-of-uniforms-in-branding\/&#8221;\n}\n\n\n\n\n<p><strong>Why use the Set Node?<\/strong><\/p>\n\n\n\n<ol>\n<li><strong>Flexibility<\/strong>: You can easily update this list without touching any code.<\/li>\n\n\n\n<li><strong>Scalability<\/strong>: If you have different workflows for different sites, each one can maintain its own list.<\/li>\n\n\n\n<li><strong>Simplicity<\/strong>: This avoids hardcoding URLs into scripts. Everything is centralized and clean.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2-1024x454.png\" alt=\"\" class=\"wp-image-1365\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2-1024x454.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2-300x133.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2-768x341.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2-100x44.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/image-2.png 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><span id=\"docs-internal-guid-4f620fbb-7fff-928c-cbfe-29ca5d832577\"><h2 dir=\"ltr\" style=\"line-height:1.38;text-align: justify;margin-top:18pt;margin-bottom:4pt;\"><span style=\"font-size: 17pt; font-family: Arial, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline;\">Step 3: Preparing the Google Search Query<\/span><\/h2><\/span><\/p>\n\n\n\n<p>Once we have a list of URLs defined in the Set Node, the next step is to prepare them in a format that can actually be queried on Google. If we were to paste all of them directly into Google at once, the workflow would quickly fail. That\u2019s because Google needs one query at a time to return clear results, and sending multiple URLs in bulk will either break the process or return mixed results that are hard to analyze.<\/p>\n\n\n\n<p>To solve this, we use a <strong>Function Node<\/strong> in n8n that runs a short JavaScript script. The purpose of this node is simple: take the comma-separated list of URLs we created earlier and split them into individual items. Each item is then transformed into a properly formatted Google search query using the <strong>site:<\/strong> operator. This operator is one of the most useful tricks for SEOs\u2014it allows us to check if a specific page exists in Google\u2019s index. For example, searching site:example.com\/page will either show the indexed page or display a message that no results were found.<\/p>\n\n\n\n<p>The Function Node code does three things:<\/p>\n\n\n\n<ol>\n<li>Splits the urlList into individual URLs.<\/li>\n\n\n\n<li>Cleans each URL by trimming whitespace<\/li>\n\n\n\n<li>Creates a JSON object for each URL with three fields:<br>\n<ul>\n<li>searchUrl \u2192 the Google query with site:.<\/li>\n\n\n\n<li>originalUrl \u2192 the actual page we are testing.<\/li>\n\n\n\n<li>index \u2192 the position of the URL in the list (for tracking).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>By doing this, the workflow ensures that each URL is ready to be processed one by one in the upcoming loop. The output of this node is a structured list where every item contains both the original URL and its corresponding Google search query.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"421\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801-1024x421.png\" alt=\"\" class=\"wp-image-1366\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801-1024x421.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801-300x123.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801-768x316.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801-100x41.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/53e7ae8c-9256-44d3-9ed0-cdd99efd5801.png 1343w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This is a crucial step because it transforms our simple static list into actionable search requests that Google can understand. Without this preparation, the following nodes would not know how to handle multiple URLs in a systematic and reliable way.<\/p>\n\n\n\n<p><strong>Step 4: Looping Over Items Safely<\/strong><\/p>\n\n\n\n<p>Now that we have a clean list of prepared Google search queries, the next step is to make sure they are executed one by one in a controlled manner. This is where the <strong>Loop Over Items node<\/strong> in n8n comes in. By default, n8n can process multiple items in parallel, but when we\u2019re dealing with Google requests, parallel execution can easily cause issues. Too many simultaneous requests look suspicious to Google, and that may trigger captchas or even temporary blocks.<\/p>\n\n\n\n<p>To avoid this, we configure the workflow to process <strong>only one URL at a time<\/strong>. In the Loop Over Items node, we set the <strong>Batch Size<\/strong> to 1. This ensures that each Google query is executed individually, giving us full control over the sequence of events. With this setup, each URL will go through the next steps in isolation: randomized User-Agent assignment, timed delay, request execution, and result parsing.<\/p>\n\n\n\n<p>This design also helps in debugging. If something goes wrong with a specific URL, it is much easier to track the error when URLs are processed sequentially rather than in parallel. For large websites with hundreds of URLs, sequential looping might take longer, but it\u2019s safer and much more reliable.<\/p>\n\n\n\n<p>Another benefit of using the Loop node is <strong>scalability<\/strong>. Whether you are testing 10 URLs or 1,000, the logic remains the same\u2014one at a time, steady, and predictable. You can even extend this logic with conditional branches. For example, you could skip certain URLs under specific conditions or route failed URLs into a separate log for review.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35-1024x447.png\" alt=\"\" class=\"wp-image-1367\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35-1024x447.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35-300x131.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35-768x335.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35-100x44.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/102f14f8-fe22-45cc-815e-ae9d4d4cad35.png 1335w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In short, the Loop Over Items node ensures that our indexing checker behaves responsibly, reduces the risk of being flagged by Google, and maintains a professional-grade level of reliability. Without this step, the workflow could overwhelm Google\u2019s systems or produce incomplete results.<\/p>\n\n\n\n<p><strong>Step 5: Adding Random User-Agent and Delay<\/strong><\/p>\n\n\n\n<p>One of the key challenges when automating Google queries is avoiding detection. If every request comes from the same \u201cbrowser fingerprint\u201d and occurs at the same interval, Google can quickly recognize the activity as automated. This might result in temporary IP blocks, captchas, or incomplete search results. To make our workflow behave more like a human user, we need to introduce randomness in two critical areas: the <strong>browser identity<\/strong> and the <strong>timing of requests<\/strong>.<\/p>\n\n\n\n<p>This is handled through a <strong>Function Node in n8n<\/strong>. Inside the node, we define an array of common User-Agent strings representing different browsers and devices. This includes Chrome on Windows, Firefox on Linux, Safari on iOS, Edge on macOS, and more. For each URL request, the workflow randomly selects one of these User-Agents and attaches it to the HTTP header. As a result, one request may look like it came from a Windows desktop, while the next might appear as if it was sent from an iPhone.<\/p>\n\n\n\n<p>In addition to rotating User-Agents, the code also generates a random delay between 12 and 30 seconds. This ensures that requests are not sent at fixed intervals, which would otherwise look suspicious. Instead, the workflow pauses unpredictably, much like how a real person might pause while browsing.<\/p>\n\n\n\n<p>This step is critical because it adds a layer of authenticity to the automation. Without it, even the best-designed workflow could be flagged by Google after only a few runs. With User-Agent rotation and randomized delays, however, the workflow remains stable, resilient, and safe to run multiple times a day without issue.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"437\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f-1024x437.png\" alt=\"\" class=\"wp-image-1368\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f-1024x437.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f-300x128.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f-768x328.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f-100x43.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/870eb395-9e17-4529-b89c-da3b7065c66f.png 1332w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This combination of tactics\u2014browser rotation and natural timing\u2014transforms the workflow from a simple script into a robust SEO tool that can operate at scale without tripping Google\u2019s defenses.<\/p>\n\n\n\n<p><strong>Step 6: Implementing the Wait Node<\/strong><\/p>\n\n\n\n<p>Once the workflow has selected a random User-Agent and generated a randomized delay, we need to actually apply that pause before sending the request to Google. This is where the <strong>Wait Node<\/strong> in n8n comes into play.<\/p>\n\n\n\n<p>The Wait Node is designed to temporarily hold the workflow until certain conditions are met. In our case, the condition is simply time. Instead of sending requests instantly back-to-back, the Wait Node forces each iteration of the loop to pause for a number of seconds. By using the delay value generated in the previous step, the workflow introduces realistic timing between queries.<\/p>\n\n\n\n<p>This delay is absolutely crucial. Think of how a human behaves when searching Google: nobody enters ten different \u201csite:\u201d searches per second. There are always pauses\u2014typing the query, reading results, clicking through. By inserting these pauses, our automation mimics real-world behavior and avoids looking like a bot.<\/p>\n\n\n\n<p>In the Wait Node, the configuration is set to <strong>Resume After Time Interval<\/strong>. The input value is dynamic, meaning we don\u2019t hardcode \u201c20 seconds\u201d or \u201c30 seconds.\u201d Instead, the node reads {{$json.delay}} directly from the output of the Random Agent step. That means every iteration can have a different delay\u2014sometimes 18 seconds, sometimes 25, sometimes 30. This unpredictability is what makes the workflow resilient.<\/p>\n\n\n\n<p>Without this step, even rotating User-Agents would not be enough. Google could still detect an unnatural pattern if requests were being sent at perfectly regular intervals. With the Wait Node in place, every request becomes staggered and inconsistent\u2014just like genuine human searches.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"423\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676-1024x423.png\" alt=\"\" class=\"wp-image-1369\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676-1024x423.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676-300x124.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676-768x317.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676-100x41.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/564348cd-5b4d-4214-b4d0-946150c6f676.png 1321w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>By the end of this step, each URL in your list is ready to be queried in a safe and natural way. The workflow now behaves almost indistinguishably from a person manually performing \u201csite:\u201d searches throughout the day. This makes the entire system both effective and sustainable for long-term use.<\/p>\n\n\n\n<pre><code class=\"language-javascript\">\n\/\/ Wait Google Search Node\n\/\/ Uses dynamic delay value from previous step\n\/\/ Example: delay = 20 seconds\n\n{\n  \"searchUrl\": \"https:\/\/www.google.com\/search?q=site:https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/\",\n  \"originalUrl\": \"https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/\",\n  \"userAgent\": \"Mozilla\/5.0 (iPad; CPU OS 17_2 like Mac OS X)...Safari\/604.1\",\n  \"delay\": 20\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Step 7: Executing the Google Search<\/strong><\/p>\n\n\n\n<p>With delays and User-Agent rotation in place, the workflow is now ready to perform the actual search on Google. This is handled using the <strong>HTTP Request Node<\/strong> in n8n. The purpose of this node is straightforward: it sends a GET request to Google with the prepared site: query, and captures the raw HTML response.<\/p>\n\n\n\n<p>The most important part of this step is ensuring that Google receives the request in a way that looks natural. To do this, we configure the HTTP Request node with the following key settings:<\/p>\n\n\n\n<ul>\n<li><strong>Request Method<\/strong>: GET (we are only fetching results, not posting anything).<\/li>\n\n\n\n<li><strong>URL<\/strong>: Dynamically mapped from the prepared queries, e.g., {{$json[&#8220;searchUrl&#8221;]}}.<\/li>\n\n\n\n<li><strong>Authentication<\/strong>: None (Google Search is public, no authentication required).<\/li>\n\n\n\n<li><strong>Response Format<\/strong>: String, so the node stores the entire HTML page as text.<\/li>\n\n\n\n<li><strong>Property Name<\/strong>: data, which means the response will be available in that property.<\/li>\n\n\n\n<li><strong>Headers<\/strong>: A randomized User-Agent value injected from the previous step, so every request looks like it\u2019s coming from a different browser\/device.<\/li>\n<\/ul>\n\n\n\n<p>For example, if your URL is:<\/p>\n\n\n\n<p>https:\/\/www.google.com\/search?q=site:https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/<\/p>\n\n\n\n<p>The HTTP Request node fetches the full HTML of the search results page for that query. This raw HTML doesn\u2019t look readable at first, but it contains the clues we need to determine whether the page is indexed or not.<\/p>\n\n\n\n<p>By capturing the Google search result this way, we have complete control. We are no longer relying on external SEO tools or even the Search Console API. Instead, we\u2019re directly replicating what a human SEO would do\u2014search for a URL using the site: operator\u2014but in an automated, scalable way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"434\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905-1024x434.png\" alt=\"\" class=\"wp-image-1370\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905-1024x434.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905-300x127.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905-768x325.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905-100x42.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/88e4da21-428b-4c56-a98d-05781070c905.png 1322w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This step is the gateway between preparation and analysis. Once the HTML is captured, the next node can parse it and decide whether the target URL is indexed.<\/p>\n\n\n\n<pre><code class=\"language-javascript\">\n\/\/ HTTP Request Node Configuration\nRequest Method: GET\nURL: {{$json[\"searchUrl\"]}}\nResponse Format: String\nProperty Name: data\nHeaders:\n  User-Agent: {{$json.userAgent}}\n<\/code><\/pre>\n\n\n\n<p><strong>Step 8: Parsing Results and Checking Indexing Status<\/strong><\/p>\n\n\n\n<p>At this stage, we already have the raw HTML from Google Search for each site: query. The next challenge is to interpret that response and decide if the page is indexed or not. Google doesn\u2019t provide a simple \u201cyes\/no\u201d answer in the search result HTML\u2014it has to be inferred from the content.<\/p>\n\n\n\n<p>In our workflow, we solve this problem using a <strong>Function Node with JavaScript<\/strong>. The logic is simple but effective: search the returned HTML for a specific phrase that Google displays when no results are found. Typically, this message looks like <em>\u201cdid not match any documents\u201d<\/em>. If this phrase is present in the response, it means Google couldn\u2019t find the URL\u2014so the page is not indexed. If the phrase is missing, the page is assumed to be indexed.<\/p>\n\n\n\n<p>The function performs three main tasks:<\/p>\n\n\n\n<ol>\n<li><strong>Extract the HTML<\/strong>: It reads the body field from the HTTP Request node output, which contains the full search result page in text form.<br><\/li>\n\n\n\n<li><strong>Check for the phrase<\/strong>: It uses html.includes(&#8220;did not match any documents&#8221;) to see if the error message is present.<br>\n<ul>\n<li>If true \u2192 mark as isIndexed: false.<\/li>\n\n\n\n<li>If false \u2192 mark as isIndexed: true.<br><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Return clean output<\/strong>: It generates a simplified JSON object with two fields:<br>\n<ul>\n<li>searchUrl \u2192 the original URL being checked.<\/li>\n\n\n\n<li>isIndexed \u2192 a boolean (true or false).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>This makes the workflow extremely efficient. Instead of dealing with messy HTML or regex parsing, we rely on a single reliable text check. Of course, this logic can be extended later to handle edge cases or localized Google messages, but for most scenarios, it works perfectly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"434\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61-1024x434.png\" alt=\"\" class=\"wp-image-1371\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61-1024x434.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61-300x127.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61-768x325.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61-100x42.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/547406b1-d317-45da-be58-333079b9ac61.png 1346w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The output from this node is now structured, human-readable, and ready to be logged. With every URL clearly marked as Indexed or Not Indexed, we can confidently pass the data into our reporting system\u2014in this case, Google Sheets.<\/p>\n\n\n\n<pre><code class=\"language-javascript\">\nconst html = $json[\"body\"];\nconst found = typeof html === \"string\" && html.includes(\"did not match any documents\") ? false : true;\n\nconst itemIndex = $runIndex;\nconst allPreviousData = $node[\"Wait Google Search\"].json;\n\nreturn [{\n  json: {\n    searchUrl: allPreviousData.originalUrl || 'TEST_URL',\n    isIndexed: found,\n  }\n}];\n<\/code><\/pre>\n\n\n\n<p><strong>Step 9: Logging Results in Google Sheets<\/strong><\/p>\n\n\n\n<p>Once the indexing status has been determined for each URL, the final step is to save these results somewhere we can easily monitor them over time. For this workflow, we use the <strong>Google Sheets node in n8n<\/strong>. Sheets is a great choice because it provides an accessible, shareable, and visual way to track indexation changes without requiring any additional infrastructure.<\/p>\n\n\n\n<p>In the Google Sheets node, we configure the workflow to either <strong>append a new row<\/strong> or <strong>update an existing row<\/strong> depending on whether the URL already exists in the sheet. This makes the system flexible: if a URL is being checked for the first time, it\u2019s added as a new entry. If it\u2019s already there, its isIndexed status simply updates with the latest result.<\/p>\n\n\n\n<p><strong>Typical Configuration:<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>Credentials<\/strong>: Connect your Google account to n8n.<\/li>\n\n\n\n<li><strong>Resource<\/strong>: Sheet within your Google document.<\/li>\n\n\n\n<li><strong>Operation<\/strong>: \u201cAppend or Update Row.\u201d<\/li>\n\n\n\n<li><strong>Document<\/strong>: The target Google Sheet (for example, n8nsheet).<\/li>\n\n\n\n<li><strong>Sheet<\/strong>: The sheet\/tab inside the document (also named n8nsheet).<\/li>\n\n\n\n<li><strong>Column to Match On<\/strong>: url (so that rows update based on URL).<\/li>\n\n\n\n<li><strong>Mapping Mode<\/strong>: Manual mapping, where you map the originalUrl field to url and the is Indexed field to a column like status.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"427\" src=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2-1024x427.png\" alt=\"\" class=\"wp-image-1372\" srcset=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2-1024x427.png 1024w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2-300x125.png 300w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2-768x320.png 768w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2-100x42.png 100w, https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/a0215c55-b089-4757-ba20-f383f0fd30c2.png 1349w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\">\n    <thead>\n        <tr>\n            <th>URL<\/th>\n            <th>isIndexed<\/th>\n            <th>Last Checked<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr>\n            <td><a href=\"https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.vesbhusha.com\/types-of-uniforms-in-the-hotel-industry\/<\/a><\/td>\n            <td>true<\/td>\n            <td>2025-09-11<\/td>\n        <\/tr>\n        <tr>\n            <td><a href=\"https:\/\/www.vesbhusha.com\/common-mistakes-to-avoid-when-choosing-corporate-uniforms\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.vesbhusha.com\/common-mistakes-to-avoid-when-choosing-corporate-uniforms\/<\/a><\/td>\n            <td>false<\/td>\n            <td>2025-09-11<\/td>\n        <\/tr>\n    <\/tbody>\n<\/table>\n\n\n\n<p>The beauty of this approach is that it provides <strong>long-term visibility<\/strong> into indexation trends. Over time, you can see which URLs frequently drop out of Google\u2019s index, which remain stable, and how changes to your site may affect crawling and indexing. This data can also be exported, filtered, or visualized in Google Data Studio for deeper reporting.<\/p>\n\n\n\n<p>By storing results in Google Sheets, we make the workflow not just automated, but also actionable. The information is always there, organized, and ready for SEO decision-making<\/p>\n\n\n\n<p><strong>Step 10: Final Node (No Operation)<\/strong><\/p>\n\n\n\n<p>After processing each URL, applying delays, running Google searches, parsing the results, and saving everything into Google Sheets, the workflow needs a clear stopping point. This is where the <strong>No Operation (Do Nothing)<\/strong> node comes in.<\/p>\n\n\n\n<p>At first glance, this step may seem unnecessary because it doesn\u2019t actively perform any task. However, in practice, it serves an important role in keeping the workflow clean and organized. The No Operation node acts as a placeholder that signals the official end of the process. This makes the entire sequence easier to read and maintain, especially in larger workflows where many branches of logic may converge.<\/p>\n\n\n\n<p><strong>Why use a No Operation node?<\/strong><\/p>\n\n\n\n<ol>\n<li><strong>Clarity<\/strong>: It visually marks the end of your indexing workflow, making it clear to you or any team member where the process concludes.<br><\/li>\n\n\n\n<li><strong>Flexibility<\/strong>: You can later replace or extend this node with new functionality\u2014for example, sending a Slack message, an email notification, or a webhook to another system summarizing the results.<br><\/li>\n<\/ol>\n\n\n\n<p><strong>Error Handling<\/strong>: In some workflows, ending abruptly on a Google Sheets update could leave things unclear if you later debug issues. Having a dedicated endpoint node keeps the workflow structured.<\/p>\n\n\n\n<p><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>Managing SEO for large websites can be overwhelming, especially when it comes to monitoring whether hundreds or even thousands of URLs remain indexed in Google. Manually checking these with \u201csite:\u201d searches is time-consuming, inconsistent, and simply not practical at scale. That\u2019s why automation is no longer a luxury\u2014it\u2019s a necessity.<\/p>\n\n\n\n<p>By leveraging the power of <strong>n8n<\/strong>, we built a fully automated workflow that performs all the heavy lifting for you. From triggering the workflow on a schedule, splitting URLs into manageable queries, introducing random delays and User-Agent rotation, fetching results with HTTP requests, parsing responses for indexing status, and finally logging everything neatly into Google Sheets\u2014this workflow covers the entire lifecycle of indexation monitoring.<\/p>\n\n\n\n<p>The beauty of this setup is its simplicity and scalability. Once configured, it runs in the background, updating your Sheets automatically with fresh data every few hours. You\u2019ll always have a historical record of indexation trends that can help diagnose problems early, spot sudden drops, or confirm improvements after implementing SEO changes.<\/p>\n\n\n\n<p>More importantly, the workflow is flexible. The <strong>No Operation node<\/strong> at the end is a deliberate design choice\u2014it allows you to extend the system whenever you\u2019re ready. For example, you could add Slack alerts for URLs that remain unindexed after several runs, email reports for clients, or even connect it to a database or BI dashboard.<\/p>\n\n\n\n<p>This isn\u2019t just about saving time (though it will save hours each week). It\u2019s about creating a <strong>reliable, repeatable, and scalable process<\/strong> for one of SEO\u2019s most fundamental needs: making sure your content is actually findable in Google.<\/p>\n\n\n\n<p>If you\u2019re an agency, this workflow can be a game-changer for client reporting. If you\u2019re an in-house SEO, it can give you peace of mind knowing nothing slips through the cracks<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019ve ever managed SEO for a large website, you already know how painful it can be to manually check whether all your important URLs are indexed in Google. For smaller sites, running the occasional \u201csite:\u201d search works fine. But when you\u2019re handling hundreds or even thousands of URLs across different projects, it becomes nearly [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1374,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Check Google Indexing Status Automatically Using n8n and Sheets<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Check Google Indexing Status Automatically Using n8n and Sheets\" \/>\n<meta property=\"og:description\" content=\"If you\u2019ve ever managed SEO for a large website, you already know how painful it can be to manually check whether all your important URLs are indexed in Google. For smaller sites, running the occasional \u201csite:\u201d search works fine. But when you\u2019re handling hundreds or even thousands of URLs across different projects, it becomes nearly [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/\" \/>\n<meta property=\"og:site_name\" content=\"Softnoesis Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-12T12:40:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T12:42:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"652\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Chirag L.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chirag L.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Check Google Indexing Status Automatically Using n8n and Sheets","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/","og_locale":"en_US","og_type":"article","og_title":"Check Google Indexing Status Automatically Using n8n and Sheets","og_description":"If you\u2019ve ever managed SEO for a large website, you already know how painful it can be to manually check whether all your important URLs are indexed in Google. For smaller sites, running the occasional \u201csite:\u201d search works fine. But when you\u2019re handling hundreds or even thousands of URLs across different projects, it becomes nearly [&hellip;]","og_url":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/","og_site_name":"Softnoesis Blog","article_published_time":"2025-09-12T12:40:05+00:00","article_modified_time":"2025-09-12T12:42:41+00:00","og_image":[{"width":1080,"height":652,"url":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png","type":"image\/png"}],"author":"Chirag L.","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Chirag L.","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#article","isPartOf":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/"},"author":{"name":"Chirag L.","@id":"https:\/\/www.softnoesis.com\/blog\/#\/schema\/person\/4011898fbd0f63612c9497a986fc0376"},"headline":"Check Google Indexing Status Automatically Using n8n and Sheets","datePublished":"2025-09-12T12:40:05+00:00","dateModified":"2025-09-12T12:42:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/"},"wordCount":3609,"publisher":{"@id":"https:\/\/www.softnoesis.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png","articleSection":["General"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/","url":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/","name":"Check Google Indexing Status Automatically Using n8n and Sheets","isPartOf":{"@id":"https:\/\/www.softnoesis.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#primaryimage"},"image":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png","datePublished":"2025-09-12T12:40:05+00:00","dateModified":"2025-09-12T12:42:41+00:00","breadcrumb":{"@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#primaryimage","url":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png","contentUrl":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2025\/09\/Untitled-design-2-1.png","width":1080,"height":652},{"@type":"BreadcrumbList","@id":"https:\/\/www.softnoesis.com\/blog\/check-google-indexing-status-automatically-using-n8n-and-sheets\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.softnoesis.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Check Google Indexing Status Automatically Using n8n and Sheets"}]},{"@type":"WebSite","@id":"https:\/\/www.softnoesis.com\/blog\/#website","url":"https:\/\/www.softnoesis.com\/blog\/","name":"Softnoesis Blog","description":"Discover the Latest Insights, Tips, and Features on the Softnoesis Blog for Mobile App and Web Development to Elevate Your Team&#039;s Collaboration and Productivity.","publisher":{"@id":"https:\/\/www.softnoesis.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.softnoesis.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.softnoesis.com\/blog\/#organization","name":"Softnoesis Blog","url":"https:\/\/www.softnoesis.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.softnoesis.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2022\/06\/softnoesis-new.png","contentUrl":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2022\/06\/softnoesis-new.png","width":300,"height":65,"caption":"Softnoesis Blog"},"image":{"@id":"https:\/\/www.softnoesis.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.softnoesis.com\/blog\/#\/schema\/person\/4011898fbd0f63612c9497a986fc0376","name":"Chirag L.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.softnoesis.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2023\/01\/1673278375469.jpeg","contentUrl":"https:\/\/www.softnoesis.com\/blog\/wp-content\/uploads\/2023\/01\/1673278375469.jpeg","caption":"Chirag L."},"description":"Director of Softnoesis Pvt. Ltd.","sameAs":["https:\/\/www.softnoesis.com\/blog","https:\/\/www.linkedin.com\/in\/chirag-lukhi\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/posts\/1361"}],"collection":[{"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/comments?post=1361"}],"version-history":[{"count":2,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/posts\/1361\/revisions"}],"predecessor-version":[{"id":1373,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/posts\/1361\/revisions\/1373"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/media\/1374"}],"wp:attachment":[{"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/media?parent=1361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/categories?post=1361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.softnoesis.com\/blog\/wp-json\/wp\/v2\/tags?post=1361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}