To connect WordPress to AdSense, add the correct website to your publisher account, complete an accepted ownership-verification method and follow the site-review instructions. For a standard WordPress installation, Site Kit by Google provides a guided connection and can place the AdSense script for you.
Quick answer: Choose one method to manage the site-level AdSense code, confirm the correct publisher information in the public output and check the site’s status in AdSense. Ownership verification, approval and visible ads are separate outcomes. Completing one does not automatically complete the others.
This guide covers technical connection and troubleshooting for WordPress sites you control. Use our AdSense guides hub for the wider learning path and the site review checklist to assess readiness before submitting.
Understand the Four Parts of the Setup
A connected plugin is not the same as an approved website. Keep the four stages below separate when checking progress. This prevents unnecessary code changes when the remaining task is actually an account requirement or site review.
| Stage | Purpose | What to check |
|---|---|---|
| Account connection | Connect the appropriate Google and AdSense access | The correct account is selected |
| Ownership verification | Establish control of the submitted website | The accepted verification method is detected |
| Site review | Evaluate the site for AdSense eligibility | The site status and outstanding tasks |
| Ad serving | Display eligible ads through configured formats | Actual code, settings and visitor conditions |
A verification meta tag does not display an ad. An ads.txt entry is not an ad unit. A visible script does not prove approval. When troubleshooting, first identify which stage has not completed.
Before You Connect WordPress to AdSense
Use the production website and final domain. Confirm that the homepage and important articles are publicly accessible, HTTPS works and redirects lead to the intended site. Do not accidentally submit a staging address or an individual article URL.
You need permission to configure the WordPress installation or another accepted verification method. If the site is managed by someone else, agree on who controls the integration and publisher account before changing code.
Review the website requirements before applying. Accurate publisher and privacy information matters too; our important website pages guide covers those resources without treating them as an approval guarantee.
Record the existing setup before making changes. Identify any AdSense implementation in Site Kit, theme settings, header-code tools or ad-management plugins. If code or plugin changes are involved, keep a usable backup and a clear way to reverse the specific change.
Choose Your Connection Method
| Method | Suitable use | Important limitation |
|---|---|---|
| Site Kit by Google | Guided account connection and site-level snippet placement | It does not replace site review or manually place individual ad units |
| Maintained header-code integration | Manual control of the account-supplied snippet | You must verify placement and compatibility |
| Developer-managed integration | A controlled theme or deployment workflow | Implementation must survive updates and migrations |
| Meta tag or ads.txt verification | An ownership-verification option offered by AdSense | Verification alone does not configure visible ads |
Google’s WordPress connection guidance recommends Site Kit. A manual approach can also work, provided the implementation follows the account instructions and is maintained correctly.
Method 1: Use Site Kit by Google
Install and Complete Initial Setup
In WordPress, open Plugins, search for Site Kit by Google and confirm that you are selecting the official plugin. Install and activate it, then open the Site Kit dashboard. Follow the sign-in and permission steps using the Google Account intended for this website.
Check the plugin’s current requirements rather than relying on an old tutorial’s version numbers. Public access and a working WordPress REST API are relevant setup checks. Review Tools → Site Health if installation or connection reports a problem.
The initial flow may offer Analytics setup. Analytics and AdSense are separate services; connecting one does not connect the other. Follow the official Site Kit installation guide for the current flow.
Connect the AdSense Service
Open Site Kit → Settings → Connect More Services and select the AdSense setup option. Review the Google Account selected and follow the prompts relevant to your existing account and site. Menu wording can change, so use the instructions shown in your installation.
If the expected publisher account is missing, investigate the login and permissions first. Do not create another AdSense account simply because the existing one is not visible. An account connection problem is different from needing to add a new website.
Decide Who Places the AdSense Script
If Site Kit will place the site-level script, inspect and remove any redundant installation of that same script after confirming the replacement. If another integration will continue placing it, keep Site Kit’s script-placement setting consistent with that choice.
Site Kit can provide reporting while another system handles ad code. It can also place an AdSense meta tag when its ad-script placement is disabled. Therefore, seeing a meta tag does not prove that Site Kit is loading the advertising script.
Check the official Site Kit AdSense documentation for settings and account messages. Keep a note of which component is responsible for each part of the implementation.
Method 2: Add the Account-Supplied Code Manually
Copy the exact site-level snippet from your AdSense account. Use a maintained integration that outputs it in the document head. Do not paste it into a single article and assume that it will appear across the website.
A field called “header” can mean different things in different WordPress tools. Confirm that the field inserts code inside the HTML head, rather than displaying content in the visible page header. Inspect the public output after saving.
The example below illustrates the script pattern only. It is not working account code. Copy the complete snippet supplied by AdSense for your publisher account.
<script async
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-YOUR_ID"
crossorigin="anonymous"></script>Google explains the required location in its site-level code placement guidance. Do not add another pair of head tags to a plugin field that already inserts its contents into the existing head.
Direct parent-theme edits can be overwritten during an update. Use a maintainable code-management method or a developer-controlled integration. Block themes and classic themes can have different structures, so a tutorial pointing to one file is not universal.
Add the Correct Website in AdSense
Open the intended AdSense account and its Sites area. Add the website using the address format requested by the interface. Confirm the domain carefully, then open the site’s connection and verification instructions.
Adding code does not necessarily complete every account task. Review outstanding account information and site actions. Keep account setup separate from WordPress implementation so you can identify exactly what remains.
Use Google’s site connection instructions for the current process. Follow the offered verification methods instead of trying to complete every method simultaneously.
Understand Meta Tag and Ads.txt Verification
Verification Meta Tag
If your account offers a meta-tag method, copy its exact tag into the document head through an appropriate WordPress integration. Check that the public page contains the account-supplied value after caches have updated.
<meta name="google-adsense-account" content="ca-pub-YOUR_ID">This is an illustrative pattern, not your account’s tag. A verification tag does not create an ad container or enable Auto ads. Configure the actual ad-serving method separately when the site is eligible.
Ads.txt
Ads.txt identifies authorised sellers of advertising inventory. AdSense may also offer an ads.txt entry as an ownership-verification method. Use the exact line supplied by your account and keep existing valid entries for other authorised partners.
google.com, pub-YOUR_ID, DIRECT, f08c47fec0942fa0The placeholder above is not usable publisher information. Note that the ads.txt entry uses the pub- format, while the script and meta-tag examples use ca-pub-. Copying the account instructions avoids accidental formatting errors.
Create or manage the file through a suitable existing feature, a dedicated implementation or hosting access. Test the public domain-root URL, such as https://example.com/ads.txt. Do not assume that installing Site Kit automatically created the required file.
The response should contain the expected text, not a styled error page, login screen or unrelated WordPress article. A physical root file and a plugin-generated response can conflict, so identify which one is actually serving the public URL.
Google may need time to recrawl a corrected file. Review the official ads.txt troubleshooting instructions before repeatedly recreating an already correct implementation.
Verify the Public Implementation
Test while logged out because an integration may suppress ads for administrators or other logged-in users. Use a private window to inspect the public visitor experience. Disable your own browser’s ad blocker temporarily only when needed for testing.
View the homepage source and search for the selected verification element or AdSense script. Confirm the publisher value, then check a representative article and another important template. A correct homepage implementation may not prove that every template works.
View Source shows the initial HTML response. Developer Tools shows the live document and network activity after browser processing. Consent and deferred loading can affect what appears at different stages. Code presence alone does not establish successful loading.
Keep applicable consent behaviour intact. Use our AdSense consent and CMP guide for that separate configuration. Do not remove privacy controls merely to make a test request appear.
Check Site Kit’s Recorded Placement
Site Kit documents a placement check under Tools → Site Health → Info → Site Kit by Google. The AdSense snippet placed field helps identify whether Site Kit placed the snippet. Also review the service settings and the public output.
A “No” value can be consistent with another integration managing the script. A “Yes” value does not establish approval or guarantee that every visit receives an ad. Interpret the field alongside your documented implementation choice.
Diagnose Duplicate Code Correctly
Multiple appearances of a publisher ID do not automatically mean duplicate code. The ID can appear in a verification tag, script and several legitimate manual ad units. Inspect what each occurrence does before deleting anything.
Look specifically for redundant installations of the same site-level loader by competing components. For example, Site Kit, a theme field and a header plugin may all insert it. Identify the source of each copy and choose one managed implementation.
Do not remove all manual ad units simply because their code contains the same account identifier. A manual unit has its own placement and slot information. Preserve legitimate unit configuration while resolving unnecessary loader duplication.
Request Review and Read the Site Status
When verification and required account tasks are complete, use the review action offered for the site. Keep the public website available and the implementation stable. Installing another plugin does not speed up a pending policy review.
Use the actual status in AdSense to decide the next action. A request for review, a pending review and a site requiring corrections are different conditions. Our application status guide explains the wider message types.
If the site needs attention, read the attached reason. A connection error may require implementation work, while a content issue requires editorial investigation. Use our AdSense rejection diagnosis guide for the latter rather than repeatedly replacing valid code.
Approval timing varies. Monitor the account and follow any stated instructions. Do not promise an exact approval day based on a tutorial or another publisher’s experience.
After Approval: Auto Ads or Manual Units
For Auto ads, confirm the required site-level script and review the site’s Auto ads settings in AdSense. Inspect available previews, exclusions and formats before applying changes. A verification-only implementation needs the appropriate advertising setup.
For manual units, create the unit in AdSense and follow its implementation instructions. The unit belongs in the page body where the ad should display. Site Kit does not manually insert individual ad units for you.
Google’s ad-unit placement guidance explains this distinction. When several tools are involved, document which one loads the site-level script and which one manages individual placements.
Use our ad placement guide for a separate layout review. Never click your own ads to check them, and do not place units where readers may mistake them for navigation or download controls.
Common Connection Problems
| Symptom | Investigate | Next check |
|---|---|---|
| No verification element in public output | Wrong field, disabled integration or stale cache | Check the selected method and public response |
| Wrong publisher information | Old theme settings or another account connection | Identify the authorised account and implementation source |
| Site Kit cannot finish setup | Account permissions, REST API or blocked requests | Use Site Health and official troubleshooting |
| Ads.txt still reports an issue | File content, response and crawl timing | Inspect the root URL and account status |
| Site is approved but ads are missing | Serving settings, exclusions, consent or browser blocking | Test a normal visitor state and read account notices |
A page cache or CDN may keep serving an older response after you save a change. Purge the relevant cache layers and retest. Do not disable every performance feature permanently without identifying a conflict.
If script optimisation changes loading behaviour, compare the original implementation with the public result. Use the tool’s documented exclusions or troubleshooting process where appropriate. Do not invent unsupported modifications to Google’s code.
A successful Search Console live test does not prove AdSense crawler access. If AdSense reports the site as unreachable, inspect its instructions, server responses and security logs. Resolve legitimate public access without opening private administrative areas.
Keep a Setup Record for Future Changes
Production domain: Authorised publisher account: Ownership-verification method: Site-level script placement tool: Manual ad-unit placement tool, if used: Ads.txt implementation location: Consent configuration: Public templates checked: Date and result of verification: Changes requiring another check:
Recheck after a theme switch, hosting migration, backup restore or change to the responsible plugin. A physical ads.txt file can be lost during migration even when WordPress content transfers correctly. Theme-specific code can disappear during a redesign.
Document the change and verify the public result before assuming that monetisation continues normally. Once connection and serving work, use our low-traffic AdSense optimisation guide for measurement rather than continuing to change connection settings.
Frequently Asked Questions
Is Site Kit required for AdSense?
No. It is Google’s recommended WordPress connection option, but an appropriate manual implementation can work. Choose a method you can maintain and verify.
Should I paste the script into a Gutenberg post?
Use a site-level implementation for the main AdSense script. A post block is not a reliable way to place it across all templates. Manual ad-unit placement is a separate task with its own instructions.
Does a meta tag make ads appear?
No. A verification meta tag helps identify the account associated with the site. Actual ads require an eligible site and the appropriate serving code and configuration.
Why are ads missing when I am logged in?
Site Kit includes settings to exclude logged-in users, with that exclusion enabled by default in its documented configuration. Check your settings and test while logged out. Never click your own ads during testing.
Can Site Kit and an ad plugin work together?
They can serve different roles, such as reporting and manual placement. Avoid redundant installation of the site-level script. Inspect the actual output instead of judging duplication from publisher-ID occurrences alone.
Does successful connection guarantee approval?
No. Connection and ownership verification are technical steps. Google still reviews the site and applicable account requirements. Follow the reason shown if the site needs attention.




