Autoblogging AI Writer & Internal Linking
An AI article writer and an automatic internal linking engine in one WordPress plugin. This guide covers setup, every setting, how linking works under the hood, billing, and the fixes for the questions we get asked most.
What the plugin does
Autoblogging.dev runs two engines that feed each other. The Auto Writer generates full SEO articles on a schedule you set, and the Auto Linker turns every keyword it produces into a site wide internal link network. You can run either engine on its own.
Auto Writer
Publishes roughly 1800 to 2200 word articles into the categories you pick, on an interval from 30 minutes to 7 days, as a draft or live.
Auto Linker
Indexes the focus and secondary keywords of every published post, then injects contextual links between posts at render time.
Credits, not subscriptions
One credit is one successfully generated article. Credits do not expire, and failed generations are never charged.
Internal links are injected when a page renders, never written into your database. Deactivate the plugin and the injected links disappear cleanly. Your articles, categories and SEO meta stay exactly where they are, as normal WordPress posts.
Requirements
| Requirement | Detail |
|---|---|
| WordPress | 5.8 or newer, tested up to 7.0. |
| PHP | 7.4 or newer. The plugin refuses to activate below this and tells you the version your server is running. |
| Outbound HTTPS | Your server must be able to reach backend.autoblogging.dev. Some locked down hosts block outbound requests by default. |
| Server cron | Required for reliable scheduling. WordPress pseudo cron only fires when someone visits your site, which is not good enough for a publishing schedule. See Server cron. |
| SEO plugin | Optional but recommended. Rank Math, Yoast SEO, AIOSEO or SEOPress. Needed for meta to be written automatically. |
| AI API key | Not required. All AI calls happen server side on our backend. You never handle a provider key. |
Choosing your version
The plugin ships in two versions, both carrying the same release number, currently 1.1.6. They generate identical articles and identical links. The difference is how updates arrive and whether the ad slot feature is present.
Where it comes from: the WordPress plugin directory, either by searching inside your dashboard or from the plugin page. Slug: autoblogging-ai-writer-auto-internal-linking.
- Updates: handled by WordPress. There is no self updater in this version, so update notices appear on Plugins and Dashboard > Updates like any other plugin.
- Ad and custom code slots: not included. The feature was removed in 1.1.6 for directory compliance.
- Everything else: identical. Same writer, same linker, same credits, same API key flow.
Pick this version if you want updates to arrive the normal WordPress way and you do not need ad slots.
Where it comes from: a zip downloaded from autoblogging.dev, uploaded through Plugins > Add New > Upload Plugin.
- Updates: a built in self updater checks autoblogging.dev and offers new versions inside your WordPress updates screen, exactly like a directory plugin.
- Ad and custom code slots: included, restricted to an allowlist of known ad networks. See Ad and custom code slots.
- Everything else: identical to the directory version.
Pick this version if you want to place ad network code inside generated articles automatically.
Use the version switcher at the top of the contents panel to hide everything that does not apply to the version you installed.
Switching between versions
You can move from one to the other without losing anything. Deactivate and delete the old copy, install the other one, then activate. Your API key, credits, settings and keyword index all survive because they live in your WordPress options and database table, not in the plugin files. Your published articles are untouched either way.
Installing the plugin
- Go to Plugins > Add New.
- Search for Autoblogging or paste the slug
autoblogging-ai-writer-auto-internal-linking. - Click Install Now, then Activate.
- A new AutoBlogging-DEV menu appears in your admin sidebar.
- Download the zip from your account page on autoblogging.dev.
- Go to Plugins > Add New > Upload Plugin.
- Choose the zip, click Install Now, then Activate.
- Do not unzip it first. WordPress expects the zip as it downloaded.
- Unzip the download on your computer.
- Upload the
autoblogging-devfolder into/wp-content/plugins/. - Make sure the path ends up as
/wp-content/plugins/autoblogging-dev/autoblogging-dev.php, with no doubled folder. - Activate the plugin from Plugins.
What activation does
- Checks your PHP version and stops with a clear message if it is below 7.4.
- Creates the keyword index table used by the linker.
- Schedules the writer, heartbeat and pending job checks.
Activation sends nothing to our servers. The first outbound call happens when you connect for your API key.
Quick start in 2 minutes
Everything below lives on one screen: AutoBlogging-DEV > Getting Started. The steps tick themselves off as you complete them.
-
Get your API key
Click Connect. Your site URL and admin email are sent once, a key and secret come back, and both are saved for you. There is nothing to copy or paste.
-
Add credits
New accounts start with 2 free credits, which is enough to see two complete articles before you spend anything. Buy more from Credits & API Key when you are ready.
-
Set up Auto Writer
Choose your categories, pick a publishing frequency, decide between draft and publish, then turn the writer on.
-
Enable Auto Linker
Flip the toggle and set a maximum number of links per post. If you already have published articles, run Rebuild Keyword Index once.
-
Add your article signature
Optional. Paste a logo image URL and it is appended to the end of every generated article, using the focus keyword as alt text. Add a blog URL to wrap it in an internal link.
-
Add the server cron job
Required. Copy the one line command from the Getting Started page into your host’s cron panel. The step confirms itself within one or two minutes of the first run.
Meta data is written at the moment an article is saved. If Rank Math, Yoast, AIOSEO or SEOPress is activated later, articles generated before that point will not have meta filled in, and you would need to add it by hand. Activate your SEO plugin before you turn the writer on.
API key and connecting
Your API key identifies your site to the backend and carries your credit balance. It is issued automatically when you click Connect, and you will find it under Credits & API Key along with your account email, site URL, plugin version and detected SEO plugin.
What the key is used for
- Requesting an article generation job.
- Reading your current credit balance when you open a plugin admin page.
- Periodic validation, signed with an HMAC signature so the key alone is not enough to impersonate your site.
Keys are issued per site URL. If you migrate to a new domain, or clone a staging site to production, connect again on the new domain and email admin@autoblogging.dev so your remaining credits are moved across rather than stranded on the old key.
Writer settings
Found under AutoBlogging-DEV > Auto Writer. The master toggle at the top saves itself instantly and reschedules the cron event when you flip it.
| Setting | Options | What it does |
|---|---|---|
| Categories | Any published categories and subcategories | The writer rotates through your selection in order. One article per run, into the next category in the queue. |
| Publishing frequency | 30 minutes, 1, 2, 3, 6, 12 or 24 hours, 2, 3 or 7 days | The gap between articles across the whole site, not per category. Five categories at a 1 hour interval means each category receives an article every 5 hours. |
| Run schedule | Continuously, or run until a date | Continuous runs until credits run out. Setting an end date stops generation on that date without you having to remember to switch it off. |
| Initial status | Publish immediately, or save as draft | Draft sends every article to your drafts folder for review. Use it for the first few, then switch to publish once you are happy. |
| Post author | Any user on the site | The byline on generated articles. Many people create a dedicated editorial user for this. |
Three to five specific categories, one article every 12 or 24 hours, saved as draft. Read the first two, adjust your categories to be narrower if the topics feel broad, then switch to publish and increase frequency.
What an article contains
Every successful generation produces a complete, publish ready post:
- Roughly 1800 to 2200 words, written to read conversationally rather than as obvious machine output.
- An H1 title, a table of contents, five or more H2 sections, an FAQ section and a conclusion.
- One focus keyword plus four secondary keywords, chosen by the generator.
- A meta description, written and saved into your active SEO plugin’s own fields.
- Your article signature image at the end, if you set one.
- Immediate indexing into the linker, so the article can both receive and send internal links straight away.
Images beyond the signature are not inserted automatically. Add featured images and in body images the normal WordPress way, either as you review drafts or afterwards.
Keyword memory
Duplicate topics are the fastest way to waste credits and confuse a site’s topical structure, so the writer keeps a rolling memory. Before each generation it sends the most recent 200 keywords already used on your site, along with recent titles, and those are treated as forbidden ground for the new article.
- Both the focus keyword and all four secondary keywords are added to memory after each success.
- Recent titles are checked against your existing published, draft, pending and scheduled posts.
- A longer history is retained locally so the 200 keyword window keeps moving as you publish.
On a site with hundreds of articles, very old topics eventually fall outside the window and can be approached again from a new angle. That is deliberate. It keeps a large site from running out of things to say while still preventing near duplicates in the same period.
Article signature and paragraph spacing
Signature image
Set once on the Getting Started page. Paste a direct URL to your logo or brand image and it is appended to the end of every generated article, with the article’s focus keyword as its alt text. If you also paste a blog page URL, the image is wrapped in a link to that page, which gives every article one consistent internal link back to your hub.
Paragraph spacing
A single number in pixels, applied site wide. Some themes set paragraph spacing tight enough that long articles feel dense. Setting a value here adds breathing room without touching your theme files. Leave it blank or set 0 to keep your theme’s own spacing.
Server cron
Without a real server cron job, WordPress only checks for scheduled tasks when someone loads a page. On a new site with little traffic that means articles publish late, in bursts, or not at all. This is the single most common cause of “the writer is on but nothing happens”.
Add this to your host’s cron panel, usually listed as Cron Jobs, replacing the domain with your own:
*/5 * * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1The Getting Started page shows this line with your own domain already filled in, so copy it from there rather than editing by hand. A five minute interval is right regardless of your publishing frequency. The cron simply asks WordPress whether anything is due.
Confirming it works
- The cron step confirms itself automatically within one or two minutes of the first run, and turns into a tick.
- After that it keeps monitoring, and warns you if the cron has not fired in the last 30 minutes.
- If your host offers a minimum interval longer than five minutes, use the shortest they allow.
If you add a real cron job, you can also disable WordPress pseudo cron by adding
define('DISABLE_WP_CRON', true); to wp-config.php. This stops WordPress
checking for due tasks on every page load, which reduces load on busy sites. Only do this once
your server cron is confirmed.
Test generation and activity log
Test page
AutoBlogging-DEV > Test generates one article immediately, ignoring your schedule and the on and off toggle. It uses one credit and it obeys your draft or publish setting, so it is the fastest way to check quality, formatting and SEO meta before committing to a schedule.
Activity log
AutoBlogging-DEV > Activity Log records every queue, success and failure with the category, article title and credits remaining. If something is not behaving, this is the first place to look. There is a clear button when it gets long.
Generation is asynchronous. A run queues a job, and a background check picks the finished article up shortly after, which is why the log usually shows a “queued” line followed by a “success” line a little later.
How internal linking works
The linker runs independently of the writer. It works on articles you wrote by hand just as well as on generated ones, as long as they have focus keywords set.
-
Indexing
When a post is published or saved, its focus keyword and secondary keywords are stored in the plugin’s keyword table against that post ID. Generated articles are indexed the moment they save. Existing posts are picked up from Rank Math or Yoast focus keyword fields.
-
Matching
When a single post is viewed, the plugin scans the post content for indexed keywords belonging to other posts, longest and focus keywords first.
-
Injection
Matches are turned into links to the target post at render time, through the standard content filter. Nothing is written to your database, so your post content in the editor stays exactly as it was.
Because injection happens at render time, changes apply retroactively across your whole archive the moment you make them. Turn the linker off and every injected link is gone on the next page load, including on articles published months ago.
Settings
| Setting | Range | Notes |
|---|---|---|
| Enable Auto Linker | On or off | Controls injection only. Indexing continues either way, so your index stays current even while linking is off. |
| Max links per post | 1 to 10, default 4 | The ceiling for links injected into any single article. Four is a sensible default for a 2000 word article. |
Linking rules
These rules exist so injected links never break your markup or look spammy:
- Only single posts. Links are injected on individual post pages, not on archives, category pages, the front page or any other post type.
- Never to itself. A post is always excluded from its own candidate list.
- One link per target post. The same destination is never linked twice in one article.
- One link per keyword. Only the first occurrence of a matched keyword is linked, so the same phrase is not linked repeatedly down the page.
- Whole words only. Matching respects word boundaries, so a keyword never gets linked inside a longer word.
- Headings are protected. Nothing is injected into H1 through H6.
- Existing links are protected. Text already inside an anchor tag is never touched, so your manual links and affiliate links stay intact.
- HTML is protected. Matching runs against text only, never against tag names, attributes, URLs, shortcode parameters or image alt text.
- Priority order. Focus keywords are considered before secondary keywords, and longer keywords before shorter ones, so the most specific match wins.
Rebuild keyword index
Auto Linker > Rebuild Keyword Index scans every published post on the site, reads the focus keyword from your SEO plugin’s own field, and rebuilds the index from scratch.
Run it when
- You have just installed the plugin on a site that already has content.
- You have bulk edited focus keywords in Rank Math or Yoast.
- You have imported or migrated posts.
- The links report does not match what you see on the front end.
It is safe to run as often as you like. It only reads your posts and rewrites the plugin’s own table. Post content is never modified.
If your existing posts have no focus keyword set, there is nothing for the linker to index them against. Set focus keywords on your most important posts first, even just the top twenty, then rebuild. Those posts immediately become link targets across your whole archive.
Keyword index and links report
Keyword index
Every indexed keyword, whether it is a focus or secondary keyword, and the post it points to. Use it to spot two posts competing for the same phrase.
Links report
Which posts send links and which receive them. The report is calculated with exactly the same matching logic used on the front end, so the counts you see here are the links that actually get injected, not an estimate.
Posts receiving no links are usually either very new, or their focus keyword is a phrase that never appears naturally in other articles. Editing that keyword to something you actually write in prose is normally enough to fix it.
SEO plugins
The plugin detects which SEO plugin is active and writes into that plugin’s own fields, so the data appears exactly where you expect it and remains yours if you ever remove Autoblogging.dev.
Rank Math
Focus keyword and meta description written on save. Detected automatically.
Yoast SEO
Focus keyphrase and meta description written on save. Detected automatically.
All in One SEO
Supported. Meta written to AIOSEO fields.
SEOPress
Supported. Meta written to SEOPress fields.
Both engines still work with no SEO plugin at all. You simply lose automatic meta writing, and the linker has no focus keyword field to read from on your older, hand written posts.
The Getting Started page tells you which plugin was detected. If it says none while you clearly have one installed, the SEO plugin is probably deactivated or a version the detection does not recognise. Email support with the plugin name and version and we will add it.
Themes, page builders and caching
Everything is built on standard WordPress hooks and filters, which is why compatibility is broad rather than a list of tested themes.
- Themes: any theme. Articles are ordinary posts, styled by whatever your theme already does to posts.
- Page builders: Elementor, Divi, Beaver Builder, Bricks and the block editor all display generated posts normally. Generated content is standard post content, not a builder layout.
- Caching: LiteSpeed Cache, WP Rocket, W3 Total Cache, Cloudflare and others are fine.
Because links are injected at render time, a cached page keeps the links that existed when it was cached. After changing your max links setting, toggling the linker, or rebuilding the index, purge your cache to see the change immediately. Otherwise it appears as pages naturally expire.
Ad and custom code slots Direct Download Only
This feature was removed from the directory version in release 1.1.6. WordPress.org guidelines do not permit plugins to accept arbitrary pasted script code from users. If you need ad slots, use the direct download version from autoblogging.dev.
Ad slots let you place ad network code into generated articles automatically, so a growing archive monetises itself without you editing each post.
Allowlisted networks
Pasted code is validated against an explicit allowlist of ad network domains, both when you save it and again before it is output. Anything outside the allowlist is rejected rather than stored. Supported networks include Google AdSense, Media.net, Amazon, Ezoic, Mediavine and AdThrive or Raptive, among others.
This is a deliberate restriction, not a limitation we forgot to lift. It means a compromised admin account cannot use the plugin to inject arbitrary scripts across your entire archive.
Paragraph spacing is a plain number, not code, so it exists in both versions and was unaffected by the ad slot removal.
Self updater Direct Download Only
The direct download version checks autoblogging.dev for new releases and surfaces them in Dashboard > Updates and on your Plugins screen, the same as any plugin from the directory. Click update and it installs in place, keeping your settings, API key, credits and keyword index.
The WordPress.org version contains no updater at all, because the directory handles updates itself. Running both mechanisms would create update conflicts, which is why the two are packaged separately.
How credits work
One credit is one complete article, including its SEO meta and its indexing into the linker. There is no subscription and nothing renews.
- Charged on success only. A credit is deducted after the article is saved to your site. If a generation fails at any stage, no credit is used and the category returns to the queue for the next run.
- Credits never expire. Buy when you need them, use them whenever.
- Two free credits are added when you first connect, so you can see real output before spending.
- Internal linking costs nothing. The linker is not metered. It is included whether you generate one article or a thousand.
- Balance is shown in the plugin header and on the Credits page, refreshed when you load an admin page.
Running out of credits does not break anything. The writer simply stops publishing and logs it. Top up and it resumes on the next scheduled run with no reconfiguration.
Buying credits
Go to AutoBlogging-DEV > Credits & API Key. Packs are listed with their credit count, total price in USD and the resulting cost per article. Larger packs bring the per article cost down.
- Pick a pack.
- Tick the box confirming you understand credits are non-refundable digital goods and accept the Terms of Service.
- Click Buy with Card. Secure card checkout opens inside your WordPress dashboard.
- Credits are added automatically once payment confirms, usually within a few seconds.
A one time trial pack is available to new accounts so you can test at low cost before committing to a larger pack. It disappears from the list once used.
Reload the Credits page once. If the balance still has not moved a few minutes after a successful payment, email admin@autoblogging.dev with your account email and we will reconcile it manually.
Cancellation and refunds
There is no subscription, so there is nothing to cancel. Stop buying credits and nothing further is charged. Any credits you already hold stay on your account indefinitely.
- Credits already spent on generated articles are non-refundable. The article was produced and delivered to your site.
- Articles remain yours permanently. Everything already published stays on your site whether or not you keep using the plugin, and whether or not you have credits left.
- Failed generations are never charged, so you are never billed for something you did not receive.
If something has gone wrong with a purchase or a generation, email admin@autoblogging.dev before anything else. Most billing issues turn out to be a payment that did not confirm, and those are quick to fix.
Full terms: autoblogging.dev/terms.
Troubleshooting
The writer is on but no articles are appearing
Check these in order:
- Server cron. Step 6 on Getting Started should show a green tick. If it warns that cron has not fired, the job is missing or failing in your host’s panel.
- Credits. A zero balance stops generation. Check the Credits page.
- Categories. At least one category must be selected. An empty selection leaves nothing to rotate through.
- Initial status. If set to draft, articles are in Posts > Drafts, not on your site.
- Run schedule. If you set an end date that has passed, generation has stopped by design.
- Activity log. This tells you what actually happened, including failures with a reason.
Cron step will not turn green
The step confirms once the cron actually fires, which takes up to your cron interval. If it is still not confirming after ten minutes:
- Check the command in your host’s panel matches the one on the Getting Started page, including the full URL with https.
- Some hosts block
wget. Trycurl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1instead. - Some hosts require the PHP path form instead of a URL. Their support can tell you which format they expect.
- If the site is behind password protection, HTTP auth or a maintenance mode plugin, the cron request is being blocked before it reaches WordPress.
No internal links are appearing
- Confirm the Auto Linker toggle is on. Indexing runs whether it is on or off, injection does not.
- You need at least two indexed posts. A single post has nothing to link to.
- Check you are on a single post page. Links are not injected on archives, category pages or the home page.
- Open the Keyword Index. If it is empty, run Rebuild Keyword Index.
- Purge your cache. A page cached before you turned linking on will not show new links.
- If the keyword genuinely does not appear as text anywhere in your other articles, there is nothing to link. Check the Links Report to confirm.
Meta description or focus keyword is empty on new articles
Almost always this means the SEO plugin was activated after the article was generated, or the Getting Started page reports no SEO plugin detected. Meta is written at the moment of saving, so it cannot be backfilled into earlier articles automatically. Activate your SEO plugin, then generate a test article to confirm meta is now being written.
Duplicate or very similar topics keep appearing
The 200 keyword rolling memory prevents repeats within its window, but very broad categories push the generator toward the same territory repeatedly. Narrow your categories, or add subcategories that describe specific angles rather than one general theme. More specific categories produce more distinct articles.
Articles publish in bursts rather than spread out
This is the signature of missing server cron. WordPress queues up everything it missed and fires it all when a visitor finally triggers a check. Adding the cron job fixes the bunching.
Install from WordPress.org search failed Resolved
A temporary WordPress.org packaging glitch briefly stopped direct installs from dashboard search, returning a not found error on the download. It was resolved by regenerating the SVN tag and was never a fault in the plugin code. Direct installs work normally now. If you hit a cached copy of the error, install the zip from autoblogging.dev instead. Both versions run the same release.
The plugin cannot reach the backend
Some hosts block outbound HTTP requests from PHP by default, and some security plugins do the
same. The plugin needs to reach backend.autoblogging.dev over HTTPS. Ask your host
to allow it, or add it to your security plugin’s allowlist, then click Connect again.
Frequently asked questions
Do I need my own AI API key?
No. All generation happens on our backend using our key. You buy credits and we cover the API cost. You never need an account with an AI provider.
Will the articles be flagged as AI content?
The prompt is built to avoid the patterns and stock phrasing that make machine writing obvious. Google’s stated position is that it rewards quality content regardless of how it was produced. Reviewing your first articles in draft mode is still the sensible way to satisfy yourself about quality before automating.
Can I review articles before they go live?
Yes. Set Initial status to draft in Auto Writer. Every article lands in your drafts folder. Switch to publish immediately when you are happy.
How many articles can I generate per day?
As many as your frequency setting and credit balance allow. The shortest interval is 30 minutes. Generation spreads evenly across your selected categories rather than clustering.
Can it link articles I wrote myself?
Yes. Run Rebuild Keyword Index. Any post with a focus keyword set in Rank Math or Yoast is picked up and becomes both a link source and a link target. No new articles required.
What happens to my links if I deactivate the plugin?
Injected links disappear because they were never saved to your database. Your articles, categories, images and SEO meta all remain untouched as normal WordPress posts.
Does it work on WooCommerce stores?
Yes. Articles are generated as normal blog posts alongside your store, and linking runs on posts only, so product pages and shop archives are left alone.
Can I use it on client sites?
Yes. Each site connects and holds its own API key and credit balance. Agencies typically run a separate account per client so billing stays clean.
Does it add images to articles?
Only the article signature image you set once, appended at the end with the focus keyword as alt text. Featured images and in body images are added the normal WordPress way.
Do credits expire?
Never.
Which version should I install?
The WordPress.org version for normal directory updates, or the direct download version if you want ad slots. See Choosing your version. Article quality and linking are identical.
Data and external calls
The plugin talks to backend.autoblogging.dev, because all AI processing happens on our
servers. There is no local model and no offline generation. Here is exactly what is sent and when:
| When | What is sent |
|---|---|
| You click Connect | Your site URL and admin email, to issue an API key. Nothing is sent on activation, only on this explicit click. |
| Each article generation | The selected category, recently used keywords and recently used titles. |
| Loading a plugin admin page | Your API key, to read the current credit balance. Nothing is sent before a key exists. |
| Periodic validation | API key, timestamp and an HMAC signature, to confirm the key is still valid. |
No personally identifiable data is collected beyond the site URL and admin email used to issue the key, and both only after you click Connect. Full detail: Privacy Policy and Terms of Service.
Changelog
1.1.6 current
- Removed the ad and custom code slots feature from the WordPress.org version, since directory guidelines no longer permit plugins to accept pasted script code. The feature continues in the direct download version with its domain allowlist.
- Paragraph spacing is a plain numeric setting, not code, and is unaffected in both versions.
1.1.4
- Paragraph spacing CSS now uses the standard WordPress inline style registration rather than an echoed style tag.
1.1.3
- Removed the Google Fonts request on admin pages. The admin interface now uses system fonts only.
- Ad slot code is sanitised against an explicit allowlist on save and again before output.
1.1.2
- Renamed every function, option, hook and asset to the unique
ablogaiprefix. - Fixed the credit check contacting the API before an API key existed.
1.1.1
- Fixed the linker inserting only one link. Indexing no longer depends on the linker toggle being on.
- Fixed the keyword index falling out of sync with manual edits, trashed posts and deleted posts.
- Fixed updates occasionally leaving the plugin deactivated.
- Fixed outbound links occasionally pointing at placeholder domains.
- Fixed a rare stray character appearing between paragraphs.
- Fixed Links Report counts not matching what was actually injected.
1.0.0
- Initial release. AI writer, auto internal linking, Rank Math and Yoast integration, card payment credit system.
Contact support
Still stuck?
Email admin@autoblogging.dev. To get a useful answer on the first reply, include:
- Your account email or the first few characters of your API key.
- Which version you installed, WordPress.org or direct download.
- Plugin version, WordPress version and PHP version, all shown on the Credits & API Key page.
- The relevant lines from Activity Log.
- What you expected and what happened instead.
Support is included with every account. There is no separate support plan to buy.