What is It?
The URL Checker tool checks for broken landing pages with 404 errors or with any piece of text that indicates a product is out of stock.
Note: This tool is currently available for Google Ads and Microsoft Ads accounts.
It is created from the concept of the Check Destination URL Script and modified into its own tool to avoid script timeout. We all know that Google Ads has a limit on scripts, so if your account is very large, the script will time out without checking all the URLs.
With the URL Checker tool, you can schedule URL checks and avoid the limit issues altogether, as this is a completely in-house solution and therefore not dependent on any external systems/services.
Why Use It?
The tool allows you to:
Automatically detect landing pages that return 404 errors or contain text indicating that a product is unavailable or out of stock.
Prevent wasted spend by pausing ads, keywords, or asset groups that lead to broken or non-functional landing pages.
Run scheduled URL checks across large accounts without worrying about script timeouts or platform limitations.
Receive automated reports and notifications so you and your team can quickly review and resolve landing page issues before they impact campaign performance.
Getting Started
You'll find the tool under the Monitoring tab > Landing Page Monitoring > Landing Page URL Checker or via this link.
The landing page will list all the previously created settings with their corresponding IDs, names, scope, and action buttons to either edit, duplicate, or delete them.
To get started with a new setting, press the +ADD SETTING button. This will open a side tray that will allow you to start with the basic settings.
Basic Settings
On this first window, you’ll be able to name the setting and specify if you want the tool to check for broken URLs for ads, keywords, sitelinks, and/or Performance Max Asset Groups.
The URL Checker tool cannot pause erroneous Sitelinks. You can only report upon Sitelinks even if you have 'Apply mode' and pausing enabled in the settings.
You can then select whether you’d like the tool to just generate a report by running it on 'Preview mode' or if you’d like the tool to automatically make changes to the Google Ads account by running it on 'Apply mode'.
Once you have decided how to run the setting, the next step is to select the options based on which changes will be applied or a report will be generated.
When running the setting on 'Apply mode', the tool will pause ads, keywords, or asset groups (in the case of PMax) in the Google Ads account based on the selected options.
However, when running on 'Preview mode', a report with a list of all the entities with broken URLs will be generated, but no changes will be made.
The CSV report generated in preview mode will have a spreadsheet called 'Action' that lists all the actionable items like pausing/enabling keywords, ad groups, etc.
The 'Do not apply changes to certain URLs' option allows you to specify custom text which will be checked against the URLs. Changes (pausing/enabling) will be only applied to the entities associated with the URLs that contain or do not contain the specified text.
As shown in the screenshot above, if the system finds any URLs that contain the words 'pricing' or 'products' it will not pause/enable entities associated with those URLs. For instance, URLs like 'www.optmyzr.com/pricing' and 'www.optmyzr.com/products' will not be paused even if the system detects that they lead to broken landing pages.
Additional Settings
Next up, you'll see additional settings. This includes:
Campaign name includes/excludes
Filter which campaigns the checker runs on. Not case sensitive. For example, enter your brand name to run the setting only on brand campaigns.
Minimum clicks required for keywords and ads
Only check URLs associated with ads and keywords that have received at least this many clicks. Useful for focusing on entities that are actively driving traffic.
Text to Monitor
Flag landing pages that contain a specific phrase anywhere in their HTML source. Enter multiple phrases as comma-separated values.
Note: the checker searches the full raw HTML of the page, not just the visible content a visitor would see. This includes JavaScript bundles, translation files, and app data embedded in the page. Sometimes short or common phrases like "not found" or "out of stock" may match strings in the page's source code even on pages that are working fine.
For best results, use longer and more specific phrases that would only appear in the visible content of a genuinely broken page. You also don't need to add "404" here — the tool detects 404 responses automatically via HTTP status codes.
Check for special response codes
Monitor additional HTTP response codes beyond the standard ones. Enter codes as comma-separated values (e.g. 301, 302, 429). URLs returning these codes will appear in the Special Responses tab of your output spreadsheet rather than the standard error tabs.
Note: adding a 3xx code here also changes how the checker handles redirect-following for that run.
Check extra URLs
By default, the checker only looks at the first final URL on each ad or keyword. Enable this to check all final URLs on each entity — useful when you're running A/B tests with multiple final URLs configured in your ad account.
Check mobile URLs
Google Ads allows a separate Final Mobile URL field on ads and keywords. This setting tells the checker to also fetch and check that field. Note: this does not simulate a mobile browser or send a mobile user agent — it simply reads the mobile URL field from your ad account. This setting is on by default.
Strip query strings
When enabled, the checker removes everything after the ? in a URL before making the request. So https://example.com/page?utm_source=google is fetched as https://example.com/page. The original full URL is always what appears in your output spreadsheet — stripping only affects which URL is fetched, not what's reported. Use this if your server rejects tracking or voucher parameters and returns errors on URLs that would otherwise work fine.
Include entities with zero impressions
By default, the checker only looks at enabled ads, keywords, and sitelinks that have received at least one impression in the last 30 days. Enable this to also check entities that haven't received any impressions.
Note: PMax asset groups are excluded from this option as they don't report impression data.
Reporting and Automation
In the last step, you’ll be able to set a schedule for the tool to run and specify your notification preferences.
Spreadsheet URL: You can get the report on a new spreadsheet every time by leaving "NEW" in this field. The spreadsheet with results will be shared with the emails mentioned in the previous step, along with the user email who set up the setting.
If you want your results to populate on a specific spreadsheet, you can share it with: automation@optmyzr-automation.iam.gserviceaccount.com and then add it to the setting.
You can have the tool send you and your teammates email notifications. All you have to do is enter the email address that should be notified.
You can choose to have the tool send you a notification each time it runs with its findings or send you a notification only if it encounters errors. For this, you can choose to be notified of any errors or just of specific ones.
Use Cases
Running Large-Scale URL Checks Without Script Limitations
Problem: Traditional scripts may time out before completing URL checks, leaving many landing pages unverified.
Solution: The tool runs as an in-house solution, allowing you to schedule comprehensive URL checks without worrying about script time limits.
Monitoring High-Traffic Ads
Problem: If a high-performing ad suddenly points to a broken landing page, the impact on conversions and wasted budget can be substantial.
Solution: You can instruct the URL Checker tool to prioritize entities that receive a certain level of traffic. This allows the tool to focus on the URLs that matter most to your campaigns and detect issues affecting your top-performing ads.
Demo Video





