Give your WordPress site its first task.
Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.
Changing the footer in WordPress is rarely hard. Finding which layer controls it is, because block themes, classic themes, page builders and theme files can each own the same strip of text. Work out which one is rendering your footer first, then edit only in that place.
Most footer edits are one line of text: a stale copyright year, a missing privacy link, a phone number that changed. The edit takes ten seconds once you are in the right screen. Getting to the right screen is the whole job, because WordPress has four systems that can each own the bottom of the page.
A block theme keeps the footer as a template part in the Site Editor. A classic theme keeps it in Customizer panels, widget areas, or baked into footer.php. A page builder may hold its own footer template. Editing the wrong one is why people say the site “did not save” when it saved perfectly, just somewhere that does not render. The same routing problem shows up whenever you edit themes in WordPress, and the fix is the same: diagnose the layer, then edit.
Log in and look at the Appearance menu. That one menu answers the question in a few seconds.

One more check before you start. Look at what you are about to edit and ask whether it is global. A footer template part changes every template that includes it. A widget in Footer 1 changes every page with that sidebar. A block you added to the bottom of a single page template changes that view only. Almost every “it only changed on one page” report is that last case.
Go to Appearance, then Editor. From there, themes differ in where they file the footer, which is the single most common reason people decide it is missing:
Inside the part, edit blocks as you would anywhere else: paragraph text for the copyright line, a Navigation block for footer menus, Social Icons, Site Logo, columns for a multi-column layout. Then save. The save dialog lists what is being written, and for a footer edit it should name the Footer template part. If it lists a template such as Single or Page instead, you edited the template, not the part, and the change will not follow you across the site.
There is no “footer padding” control, which sends people hunting for a setting that does not exist. Select the Group block that wraps the footer content, open block settings, and set Styles, then Dimensions, then Padding. Check the mobile preview before saving, because a footer that looks balanced at desktop width often collapses badly at 375 pixels. If the footer is built from nested Columns inside Columns, flattening it to one Group with a few child blocks makes the spacing predictable and easier to debug later.
Open Appearance, then Customize, and look for a panel with any of these names: Footer, Footer Bar, Bottom Bar, Footer Builder, Site Identity, Theme Options, Site Info or Copyright Text. Theme authors name the same thing a dozen ways. Inside, you are usually looking for a field called Footer Text, Copyright Text or Footer Credits.
Two things trip people here. First, Customizer changes stay in preview until you click Publish. A change that looks applied in the preview pane and absent on the live site is usually just unpublished. Second, some themes accept shortcodes in that field, commonly [current_year] and [site_title], which means the year updates itself every January instead of going stale.
For widget-based footers, go to Appearance, then Widgets, and look for areas named Footer, Footer 1, Footer 2, Footer Column or Footer Bottom. Edit the Text or Custom HTML widget that holds your content, or add a Navigation Menu widget for legal links. If the footer area lists no widgets and offers nowhere to add them, the theme does not support footer widgets, and more hunting will not produce one. That is the moment to switch strategy rather than keep clicking.
If there are several text widgets in the same footer area, make sure you have the right one. Widget IDs such as text-4 and text-5 look identical in the list. Change a word in one, watch the preview, and you will know which instance renders where.

Then it is in the theme’s code. Classic themes keep the closing markup in footer.php, which WordPress’s theme handbook treats as a template partial that other template files pull in. Some themes print credits through an action hook of their own, along the lines of do_action( 'theme_name_credits' ), so the text is not in the file you are reading either.
Editing the parent theme’s footer.php works right up until the next theme update overwrites it. Use a child theme instead. WordPress’s handbook describes child themes as a way to modify an existing theme without editing that theme’s code, and a copied footer.php in the child folder takes priority over the parent’s.
footer.php from the parent theme folder into the child theme folder, keeping the same filename.The one line you must not remove is the footer hook. WordPress’s function reference describes wp_footer() as firing the action that prints scripts and data before the closing body tag, and plugins rely on it:
<footer id="site-footer">
<p>© <?php echo esc_html( date( 'Y' ) ); ?> <?php bloginfo( 'name' ); ?></p>
</footer>
<?php wp_footer(); ?>
</body>
Delete or relocate that call and the page still renders, which is what makes it nasty. What stops is analytics, tracking pixels, chat widgets and any script a plugin enqueues in the footer. People then spend an afternoon debugging the plugin that is working fine.
Two failure signatures tell you a PHP edit went wrong: a blank white page, or “There has been a critical error on this website.” With debugging on or in the server error log you will see something like Parse error: syntax error, unexpected ... in wp-content/themes/your-theme/footer.php on line 42. The line number is the fastest route back. Restore your backup, or re-upload the original footer.php from a fresh download of the theme, then redo the change in the child theme.
If a theme’s footer links are wrapped in eval( base64_decode( '...' ) ), stop. That is a theme hiding its own links from you, and it is a reason to question where the theme came from rather than a puzzle to solve.
Scripts are a different job from footer design, and they should not go in footer.php at all. A header and footer snippet plugin stores the code outside the theme, so it survives theme updates and theme switches. WPCode’s listing in the WordPress.org plugin directory describes exactly this: inserting header and footer scripts, pixel code and custom snippets. Install it, open Code Snippets, then Header & Footer, paste into the Footer box, and save.
Two caveats. The footer box still depends on wp_footer() existing in the theme, so a theme with a mangled footer file makes the plugin look broken. And a heavy third-party script in the footer is still a heavy script: test the page after adding it rather than assuming footer placement makes it free.
On a store, “the footer” is ambiguous. The storefront footer is a theme object and follows the rules above: Customizer panels on a classic theme such as Storefront, the Footer template part on a block theme, and Appearance, then Menus, to assign a dedicated footer menu for terms and privacy links. Some block-and-classic hybrid themes ship both a block footer and a classic footer, and only the active mode shows your edit, which is worth checking before you assume nothing saved.
The email footer is a separate system entirely. WooCommerce’s settings documentation lists an Emails tab under WooCommerce, then Settings, and the footer text used in customer emails is edited there under the email template options, with placeholders such as {site_title} and {site_url}. For structural changes, copy wp-content/plugins/woocommerce/templates/emails/email-footer.php into wp-content/themes/your-child-theme/woocommerce/emails/email-footer.php and edit the copy. Editing the file inside the plugin folder works until the next WooCommerce update replaces it.
A footer change touches every page, so verify it like one:
<footer> element if you rewrote the markup. Replacing it with a plain <div> removes the landmark that screen reader users rely on to jump there.Know the way back before you need it. Site Editor template parts have revisions in the sidebar. Widget content can be pasted back from a copy you kept. File edits come back from the backup you took in step one, which is the step people skip.
Stop if the footer text is not in any dashboard screen and you are not comfortable working in theme files, if the site is already showing a critical error, or if the credits are obfuscated. Stop also if the request is “change this one line” and the answer keeps turning into FTP access and a child theme, because the cost of the workaround has overtaken the cost of the change. Design changes on an existing WordPress site are the kind of work SiteSelf does through chat, using the connector plugin for content and settings and hosting access for anything in theme files, though pages owned by a visual page builder are refused with the reason.
Four usual causes. You did not click Publish in the Customizer. You edited a template instead of the Footer template part. Your host’s cache is still serving the old page. Or the theme supports both a block footer and a classic footer and you edited the inactive one.
Work through it in order: a footer text or site info field in the Customizer, a theme-specific credit setting, a credit-removal plugin built for your theme, and only then a child theme copy of footer.php. If the theme exposes a credit hook, hook into it and output your own markup instead of deleting the hook call, which can take other output with it.
Customizer and theme option values survive updates, though a theme switch loses theme-specific options. Child theme file overrides survive. Parent theme footer.php edits do not. Code stored in a snippet plugin survives both updates and theme switches, which is why tracking code belongs there.
In a theme footer field, try the theme’s shortcode, commonly [current_year]. In a child theme file, use <?php echo esc_html( date( 'Y' ) ); ?>. In a block theme, a small plugin that provides a dynamic year block drops into the Footer template part without any file editing.
Those are different systems. The admin_footer_text and update_footer filters change what appears at the bottom of wp-admin only. The public footer comes from the theme’s template part or footer.php.
On any site where non-developers have admin accounts, yes. Adding define( 'DISALLOW_FILE_EDIT', true ); to wp-config.php removes the in-dashboard file editor, so footer PHP work has to go through FTP or your host’s file manager, where a backup is part of the routine.
How-to Tutorials
There is no single way to edit a WordPress theme. There are three layers, and picking the wrong one is why edits vanish after an update or take the site down. This is how to tell which layer a change belongs in, and how to make it there.
Read article ›How-to Tutorials
WordPress has no landing page object. A landing page is an ordinary Page, and what makes it behave like a landing page is the template that renders it, its slug, its indexing settings and what loads on it. Get those four right and the page is fast and findable; get one wrong and the page goes blank, 404s, or quietly stops collecting leads.
Read article ›Troubleshooting
A plugin that stopped working almost never stopped on its own. Something changed first: an update, a PHP version, a cache rule, a snippet pasted into a theme file. The fastest route back is to find what changed, test one variable at a time, and resist the urge to fix three things at once.
Read article ›Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.