Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://jonbardiwebdesign.co.uk/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. xmlns:media="http://search.yahoo.com/mrss/" >
  9.  
  10. <channel>
  11. <title>Freelance Web Design Salford &amp; Manchester</title>
  12. <atom:link href="https://jonbardiwebdesign.co.uk/feed/" rel="self" type="application/rss+xml" />
  13. <link>https://jonbardiwebdesign.co.uk</link>
  14. <description>Freelance WordPress Web Design &#38; WordPress Services in Salford &#38; Manchester - Websites for any budget covering all the UK from a Professional WordPress Expert</description>
  15. <lastBuildDate>Fri, 04 Jul 2025 10:14:07 +0000</lastBuildDate>
  16. <language>en-US</language>
  17. <sy:updatePeriod>
  18. hourly </sy:updatePeriod>
  19. <sy:updateFrequency>
  20. 1 </sy:updateFrequency>
  21. <generator>https://wordpress.org/?v=6.8.2</generator>
  22.  
  23. <image>
  24. <url>https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/03/cropped-logo-pink-32x32.png</url>
  25. <title>Freelance Web Design Salford &amp; Manchester</title>
  26. <link>https://jonbardiwebdesign.co.uk</link>
  27. <width>32</width>
  28. <height>32</height>
  29. </image>
  30. <item>
  31. <title>@font-face: How to use custom fonts on your web page</title>
  32. <link>https://jonbardiwebdesign.co.uk/how-to-add-custom-fonts-to-wordpress/</link>
  33. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  34. <pubDate>Tue, 10 Jun 2025 12:42:51 +0000</pubDate>
  35. <category><![CDATA[WordPress Web Design and SEO]]></category>
  36. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5109</guid>
  37.  
  38. <description><![CDATA[@font-face: How to Add Custom Fonts to WordPress Font Formats Before we look at How to Add Custom Fonts to WordPress, it&#8217;s important to understand that there are various font types (TTF, WOFF, SVG, etc.), each with its own level of support across different browsers. Let&#8217;s explore this in detail together: WOFF (Web Open Font [&#8230;]]]></description>
  39. <content:encoded><![CDATA[<h1>@font-face: How to Add Custom Fonts to WordPress</h1>
  40. <h2>Font Formats</h2>
  41. <p>Before we look at <strong>How to Add Custom Fonts to WordPress</strong>, it&#8217;s important to understand that there are various font types (TTF, WOFF, SVG, etc.), each with its own level of support across different browsers. Let&#8217;s explore this in detail together:</p>
  42. <p><strong>WOFF (Web Open Font Format):</strong> This format is compatible with Internet Explorer 9 and newer, as well as Firefox, Safari, and Opera.<br />
  43. <strong>OTF (Open Type Fonts), TTF (True Type Fonts), and OTF (OpenType Fonts):</strong> These formats are supported by Firefox, Chrome, and Safari.<br />
  44. <strong>SVG:</strong> This format works with Chrome, Safari, and Opera.<br />
  45. <strong>EOT (Embedded OpenType):</strong> This format is supported by Internet Explorer.</p>
  46. <p><strong>Note: Internet Explorer 8 and earlier versions do not support custom fonts.</strong></p>
  47. <p>For optimal cross-browser compatibility, we should utilize at least the TTF, WOFF, and EOT formats.</p>
  48. <h2 id="2-" class="wp-block-heading">Embed a custom font with @font-face</h2>
  49. <p>After selecting the font for your website and uploading it to the server, you must add it to your stylesheet with the @font-face rule, enabling you to use the font.</p>
  50. <p>In this example, I will test a <strong>WOFF font</strong> that is compatible with most browsers. If you&#8217;re searching for downloadable fonts, you may discover options at fontsquirrel.com.</p>
  51. <p>For this demonstration, I will utilize the font carrara-lig-webfont.woff.</p>
  52. <p>Here’s the process for implementing the @font-face rule.</p>
  53. <pre class="wp-block-code"><code>@font-face{
  54.  font-family: 'carraralight';
  55.  src: url('carrara-lig-webfont.woff');
  56. }</code></pre>
  57. <p>As you can see, the @font-face rule necessitates the specification of two properties:</p>
  58. <p>font-family: this property allows you to define an arbitrary name for the font that will be included. With this name, you can utilize the font throughout the rest of your stylesheet.<br />
  59. src: this attribute is where you specify the physical path to the font file that you wish to embed in your website.</p>
  60. <p>I want to remind you that it is considered good practice to place the @font-face rule at the beginning of your stylesheet, ensuring that the font name is available for use in subsequent rules. Indeed, to utilize the custom font, you must refer to the name defined in the aforementioned @font-face rule.</p>
  61. <p>As previously mentioned, it is recommended to upload multiple file types for the same font into your project folder to enhance cross-browser compatibility. To achieve this, you will need to use the src attribute as demonstrated in the example below:</p>
  62. <pre class="wp-block-code"><code>
  63.            @font-face{
  64.  font-family: 'carraralight';
  65.  src: url('carrara-lig-webfont.woff') format('woff'),
  66.  src: url('
  67.            carrara-lig-webfont.ttf') format('truetype'),
  68.  url('
  69.            carrara-lig-webfont.woff') format('embedded-opentype');
  70. }</code></pre>
  71. <p>In this instance, I also indicated the format following the src attribute, which I hadn&#8217;t done previously.</p>
  72. <p>Once the font is integrated into the page, it can be utilized in other directives by simply referencing the font-family property of the element you wish to style.</p>
  73. <h2>Fallback fonts</h2>
  74. <p>Although it is not viewed the same way as it was a few years back, it&#8217;s important to remember that compatibility remains a factor to consider, as CSS3 is not universally supported.</p>
  75. <p>In this context, it can be beneficial to specify a &#8216;stock&#8217; font, particularly when implementing a custom font. To achieve this, just follow these steps:</p>
  76. <pre class="wp-block-code"><code>h1{
  77.  font-family: 'fontPersonale', Helvetica, Arial, serif;
  78. }</code></pre>
  79. <p>This approach ensures that even if CSS3 isn&#8217;t supported, the element will still be styled using one of the alternative options before reverting to the browser&#8217;s default.</p>
  80. <h2>Custom font properties</h2>
  81. <p>Up to this point, we have concentrated on the @font-face rule in its most basic form. Currently, we have only specified the font name and the URLs for retrieving the files. However, we can also perform additional tasks, such as creating multiple @font-face rules with various versions of the same character.</p>
  82. <p>The carrara-lig-webfont.woff font also includes an extra light (even thinner) version, which can be utilized whenever a lighter text portion is required.</p>
  83. <p>Once again, the font must be <strong>uploaded to the server</strong> and referenced with a specific style rule.</p>
  84. <pre class="wp-block-code"><code>@font-face {
  85.  font-family: fontPersonalizzato;
  86.  src: url('
  87.            carrara-lig-webfont.woff');
  88.  font-weight: normal;
  89. }
  90. @font-face {
  91.  font-family: fontPersonalizzato;
  92.  src: url('
  93.            carrara-extra-lig-webfont.woff');
  94.  font-weight: lighter;
  95. }</code></pre>
  96. <p>You have the option to utilize this second font, which shares the same name as the first. By employing the font-weight property, you can instruct our CSS on which version to select for the thinnest text.</p>
  97. <p>In a similar fashion, we can also add a font that comes in four distinct versions: Normal, Bold, Italic, and Bold Italic.</p>
  98. <pre class="wp-block-code"><code>@font-face {
  99.  font-family: 'MioFont';
  100.  src: url('MioFont-Regular.ttf') format('truetype');
  101.  font-weight: normal;
  102.  font-style: normal;
  103. }
  104. @font-face {
  105.  font-family: 'MioFont';
  106.  src: url('MioFont-Italic.ttf') format('truetype');
  107.  font-weight: normal;
  108.  font-style: italic;
  109. }
  110. @font-face {
  111.  font-family: 'MioFont';
  112.  src: url('MioFont-Bold.ttf') format('truetype');
  113.  font-weight: bold;
  114.  font-style: normal;
  115. }
  116. @font-face {
  117.  font-family: 'MioFont';
  118.  src: url('MioFont-BoldItalic') format('truetype');
  119.  font-weight: bold;
  120.  font-style: italic;
  121. }</code></pre>
  122. <p>Here is a list of the many <strong>different properties</strong> that can be defined for the custom font:</p>
  123. <ul>
  124. <li><strong>font-weight:</strong> Specifies the weight of the font, or how thick the font should be. Values ​​can be:
  125. <ul>
  126. <li>normal</li>
  127. <li>bold</li>
  128. <li>100</li>
  129. <li>200</li>
  130. <li>300</li>
  131. <li>400</li>
  132. <li>500</li>
  133. <li>600</li>
  134. <li>700</li>
  135. <li>800</li>
  136. <li>900</li>
  137. </ul>
  138. </li>
  139. <li><strong>font-style:</strong> defines the font style. Possible values ​​are:
  140. <ul>
  141. <li>normal</li>
  142. <li>italics</li>
  143. <li>oblique</li>
  144. </ul>
  145. </li>
  146. <li><strong>font-stretch:</strong> some font families offer the ability to move characters closer or further apart by default. Possible values ​​are:
  147. <ul>
  148. <li>condensed</li>
  149. <li>expanded</li>
  150. <li>semi-expanded</li>
  151. <li>extra expanded</li>
  152. <li>ultra expanded</li>
  153. </ul>
  154. </li>
  155. <li><strong>unicode-range</strong> : defines the range of unicode characters supported by the font. Like all other properties, this one also has a default value which is U+0-10FFFF.</li>
  156. </ul>
  157. <h2 id="5-" class="wp-block-heading">Conclusion</h2>
  158. <p>Usually it is not a good practice to use more than 2 fonts within your site (1 for the titles and one for the text). Remember that, a good site in addition to looking great, must also be functional!</p>
  159. <p>If you liked the post, please recommend it to a friend or leave a comment below. Ta-ta for now!</p>
  160. ]]></content:encoded>
  161. </item>
  162. <item>
  163. <title>Custom WordPress Code</title>
  164. <link>https://jonbardiwebdesign.co.uk/custom-wordpress-code/</link>
  165. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  166. <pubDate>Thu, 29 May 2025 13:30:28 +0000</pubDate>
  167. <category><![CDATA[WordPress Web Design and SEO]]></category>
  168. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5671</guid>
  169.  
  170. <description><![CDATA[Custom WordPress Code: PHP Snippets Let&#8217;s explore some detailed tricks to enhance our website&#8217;s security and functionality by adding custom WordPress code to the function.php file in WordPress. This will simplify our lives. Brief introduction: This guide is intended for individuals who already have a basic understanding of WordPress and PHP programming, which is a [&#8230;]]]></description>
  171. <content:encoded><![CDATA[<h1>Custom WordPress Code: PHP Snippets</h1>
  172. <p>Let&#8217;s explore some detailed tricks to enhance our website&#8217;s security and functionality by adding custom WordPress code to the function.php file in WordPress. This will simplify our lives.</p>
  173. <p>Brief introduction: This guide is intended for individuals who already have a basic understanding of WordPress and PHP programming, which is a bit more complex than HTML mark-up (after all, one is for &#8220;<em>creating thing</em>s&#8221; while the other is for &#8220;<em>laying out content</em>&#8220;).</p>
  174. <p><span class="">The distinction between editing HTML and PHP can be simply put like this:</span></p>
  175. <blockquote><p>If you err while editing <strong>HTML</strong>, your content will <strong>appear unattractive</strong>. If you err in <strong>PHP</strong>, your site might <strong>crash</strong>!</p></blockquote>
  176. <p>Naturally, we can incorporate some of these functionalities by using a WordPress plugin, but as you can see, we can steer clear of adding software that makes our <a href="https://jonbardiwebdesign.co.uk/wordpress-optimisation/">site slower and more cumbersome</a> .</p>
  177. <h2>What is the function.php file?</h2>
  178. <p>The function.php file is a crucial component of WordPress, containing <strong>specific functions utilized by the active theme</strong> we have chosen.</p>
  179. <p>Each theme comes with its own function.php file, and switching to a different theme means we will be using a different set of functions. Generally, we add our <strong>custom functions</strong> to this file to modify how the theme behaves.</p>
  180. <p>You can find references to the function.php file on the <a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-US&amp;u=https://developer.wordpress.org/themes/basics/theme-functions/" target="_blank" rel="nofollow noopener noreferrer">official WordPress website</a> .</p>
  181. <h3>Where can I find the function.php file?</h3>
  182. <p>The function.php file can be found in the <strong>root directory of every WordPress theme</strong>. To determine which file requires modification, we must first identify <strong>the theme currently in use</strong>. Therefore, we navigate to the administration menu and select Appearance &gt; Themes to check which of the installed themes on our CMS is currently active.</p>
  183. <p><img fetchpriority="high" decoding="async" class="size-full wp-image-5788 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding.jpg" alt="Custom WordPress Code: PHP snippets" width="1860" height="775" title="Custom Wordpress Code 6" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding.jpg 1860w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding-300x125.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding-1024x427.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding-768x320.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding-1536x640.jpg 1536w" sizes="(max-width: 1860px) 100vw, 1860px" /></p>
  184. <p>&nbsp;</p>
  185. <p>Once we know the active theme on our WordPress site, let&#8217;s access our server through FTP. We can locate the file at the following path (note that it may vary in some instances): www.example.com/wp-content/themes/Newspaper-child/</p>
  186. <p><img decoding="async" class="size-full wp-image-5789 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding.webp" alt="Custom WordPress Code: PHP snippets" width="600" height="528" title="Custom Wordpress Code 7" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding.webp 600w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding-300x264.webp 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
  187. <p>&nbsp;</p>
  188. <h3>How to Safely Edit the Function.php file</h3>
  189. <p>To prevent <strong>irreparable damage</strong>, I suggest the following:</p>
  190. <ul>
  191. <li>Conduct all tests on a local copy of your site or on an <strong>online test version;</strong></li>
  192. <li>Prior to making any changes, <strong>create a backup</strong> of our <em>function.php</em> file;</li>
  193. <li>Access your <strong>server via FTP</strong> and refrain from making changes through the WordPress admin panel (if desired, you can edit the file from <em>Appearance &gt; Editor</em>);</li>
  194. <li>Make modifications to the <em>function.php</em> file of the <strong>child theme</strong> rather than the original theme, as changes to the original theme&#8217;s function file will be lost during theme updates;</li>
  195. <li>Select an <strong>editor</strong> that at least provides syntax highlighting (though the following codes are quite simple and could also be edited with basic tools like Notepad);</li>
  196. </ul>
  197. <h2>function.php: code tricks</h2>
  198. <p>Once we grasp the importance of working safely, let&#8217;s explore some functionalities we can utilize with this file. Many of these are genuine techniques that can enhance the work of a <a href="https://jonbardiwebdesign.co.uk/#letstalk">web developer</a> or an SEO consultant. Therefore, <strong>considering the various professions</strong>, I have categorized these micro tutorials into two distinct sections.</p>
  199. <p>Some of the suggested codes are functions that are <strong>automatically triggered</strong> across all our pages using WP filters ( <em>add_filter</em> ), while others are activated only through specific actions ( <em>add_action</em> ). In certain instances, we will also examine straightforward functions that need to be <strong>invoked in particular areas of our theme</strong>. In such cases, we will need to call them from within <strong>other files</strong>.</p>
  200. <p>Aside from one script, I have gathered all the others from various sources over the years, and I will include references whenever possible.</p>
  201. <p>All these scripts are compatible with the latest version of WordPress, 4.61 .</p>
  202. <h3>Codes from developers</h3>
  203. <p>The scripts listed below can assist programmers and webmasters in <a href="https://jonbardiwebdesign.co.uk/">building websites</a> by modifying various graphic and coding elements of different WordPress installations, allowing for customization of the visual and structural features of the <abbr title="Content Management System">CMS</abbr>.<br />
  204. <a name="tag"></a></p>
  205. <h4>Change the appearance of the tag cloud</h4>
  206. <p>To change the font size and line spacing, sorting and number of elements in our site&#8217;s <strong>tag cloud we can use the following function:</strong></p>
  207. <p><code>function my_tag_cloud_args($in){<br />
  208. return "smallest=9&amp;largest=26&amp;number=80&amp;orderby=name&amp;unit=px&amp;order=RAND";<br />
  209. }<br />
  210. add_filter( "widget_tag_cloud_args", "my_tag_cloud_args" );</code></p>
  211. <p>From the code, it&#8217;s clear that we can establish the following for our tag cloud:</p>
  212. <ul>
  213. <li>The font sizes for the least utilized tags (smallest);</li>
  214. <li> The font sizes for the most utilized tags (largest);</li>
  215. <li>The total number of tags to display (number);</li>
  216. <li> The sorting method (name, which organizes by name, or count, which organizes by the number of posts linked to the tag);</li>
  217. <li>The unit for font sizing (unit: px, em, pt, or %);</li>
  218. <li>The order in which they appear (random RAND, ascending ASC, descending DESC).</li>
  219. </ul>
  220. <h4>Change the logo for the admin login</h4>
  221. <p>To personalize the login page for users registered on our WordPress multi-user site, we don&#8217;t require any specific plugins; just a few lines of code in the function.php file will suffice.</p>
  222. <p><code>function custom_login_logo() {<br />
  223. echo '&lt;style type="text/css"&gt;h1 a {<br />
  224. background-image: url(&lt;?php echo get_stylesheet_directory_uri(); ?&gt;/images/logo-login.png);!important; }&lt;/style&gt;';<br />
  225. }<br />
  226. add_action('login_head', 'custom_login_logo');</code></p>
  227. <p>In this example our function will replace the classic WordPress logo with an image inside the <em>images</em> folder of the theme we have active.</p>
  228. <p><img decoding="async" class="size-full wp-image-5790 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2.jpg" alt="Custom WordPress Code: PHP snippets" width="1848" height="819" title="Custom Wordpress Code 8" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2.jpg 1848w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2-300x133.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2-1024x454.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2-768x340.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/wordpress-coding2-1536x681.jpg 1536w" sizes="(max-width: 1848px) 100vw, 1848px" /></p>
  229. <p>&nbsp;</p>
  230. <p><strong>Adjust the amount of text shown in the excerpt</strong></p>
  231. <p>Using this code, we can determine how much text appears when looking at a post preview summary box (typically featuring the title, image, category, author, and a portion of the text).</p>
  232. <p><code>function custom_excerpt_length($length) {<br />
  233. return 20;<br />
  234. }<br />
  235. add_filter('excerpt_length', 'custom_excerpt_length');</code></p>
  236. <p><span class="">In particular, this function limits the content of the introductory text of the article to </span><strong><span class="">20 words</span></strong><span class=""> . Changing this value will change the amount of text displayed.</span></p>
  237. <h4>Hide WordPress version in use from header</h4>
  238. <p><span class="">Given that we can find out the </span><strong><span class="">version of WordPress in use</span></strong><span class=""> on a site in other ways, to make it more complicated to access this information, simply add the following function to the </span><em><span class="">function.php file</span></em></p>
  239. <p><code>function wp_remove_version() {<br />
  240. return '';<br />
  241. }<br />
  242. add_filter('the_generator', 'wp_remove_version');</code></p>
  243. <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8863" src="https://www.posizionamento-seo.com/wp-content/webp-express/webp-images/uploads/2016/11/meta-generator-wordpress.jpg.webp" alt="wordpress meta generator" width="600" height="284" title="Custom Wordpress Code 9"><br />
  244. <a name="copyright"></a></p>
  245. <p><strong>Automatically update copyright dates</strong></p>
  246. <p>To safeguard our content and prevent unauthorized copying, it is essential to state that it is protected by copyright. Furthermore, we must specify the duration for which this protection is applicable.</p>
  247. <p>To eliminate the need for annual updates to this information, we can implement a dynamic display of this data.</p>
  248. <p>The script below will fetch the date of the earliest content and the date of the most recent post.</p>
  249. <p><code>function dinamic_copyright() {<br />
  250. global $wpdb;<br />
  251. $copyright_dates = $wpdb-&gt;get_results("SELECT<br />
  252. YEAR(min(post_date_gmt)) AS firstdate,<br />
  253. YEAR(max(post_date_gmt)) AS lastdate<br />
  254. FROM $wpdb-&gt;posts WHERE post_status = 'publish'");<br />
  255. $output = '';<br />
  256. if($copyright_dates) {<br />
  257. $copyright = "&amp;copy; " . $copyright_dates[0]-&gt;firstdate;<br />
  258. if($copyright_dates[0]-&gt;firstdate != $copyright_dates[0]-&gt;lastdate) {<br />
  259. $copyright .= '-' . $copyright_dates[0]-&gt;lastdate;<br />
  260. }<br />
  261. $output = $copyright;<br />
  262. }<br />
  263. return $output;<br />
  264. }</code></p>
  265. <p>After inserting this script into the <em>function.php</em> file, it’s advisable <strong>to execute it at the desired location</strong>, typically at the end of the footer.</p>
  266. <p>For instance, I accessed my <em>footer.php</em> file (having previously made a copy in the child theme) and included, at the chosen spot for displaying this date range,<code>&lt;?php echo dinamic_copyright(); ?&gt;</code></p>
  267. <h4>Incorporating images into feeds</h4>
  268. <p>To enhance the look of our feeds, <strong>customizing their appearance</strong> to make them more visually appealing and linking the relevant featured image to our news, or if we aim to develop an automated newsletter that periodically selects and sends the latest published articles to recipients, we need to implement a specific function in our <em>function.php</em> file.</p>
  269. <p><code>function featuredtoRSS($content) {<br />
  270. global $post;<br />
  271. if( has_post_thumbnail( $post-&gt;ID ) ) {<br />
  272. $content = '&lt;figure&gt;' . get_the_post_thumbnail( $post-&gt;ID, 'medium' ) . '&lt;/figure&gt;' . $content;<br />
  273. }<br />
  274. return $content;<br />
  275. }<br />
  276. add_filter('the_excerpt_rss', 'featuredtoRSS');<br />
  277. add_filter('the_content_feed', 'featuredtoRSS');</code></p>
  278. <h3>Valuable SEO Functions</h3>
  279. <p>The following code can assist anyone looking to enhance the SEO of their WordPress website, thereby improving user experience and boosting search engine rankings.</p>
  280. <h4>Remove URL Field from Comments</h4>
  281. <p>If you notice that numerous individuals are misusing the comments section of your articles to promote certain websites, a great way to enhance comment quality is to <strong>remove the URL field</strong>.</p>
  282. <p><code>add_filter('comment_form_default_fields', 'unset_url_field');<br />
  283. function unset_url_field($fields){<br />
  284. if(isset($fields['url']))<br />
  285. unset($fields['url']);<br />
  286. return $fields;<br />
  287. }</code></p>
  288. <p>If it is<strong><em> really necessary</em> </strong>for the user to insert a link to explain some concept, he can always put it in the message they send you.</p>
  289. <h4>Removing pages/posts from search results</h4>
  290. <p>When we need <strong>to exclude certain pages or posts from the search results</strong> accessible to users, we can implement the following function.</p>
  291. <p><code>function SearchFilter($query) {<br />
  292. if ($query-&gt;is_search) {<br />
  293. $query-&gt;set('post__not_in', array(23,44,33,666));<br />
  294. }<br />
  295. return $query;<br />
  296. }<br />
  297. add_filter('pre_get_posts','SearchFilter');</code></p>
  298. <p>To find the <a href="https://www-posizionamento--seo-com.translate.goog/tecnica/content-management-system/wordpress/aggiornamento-yoast-seo-escludere-articoli-pagine-sitemap-xml/?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US#idEscluso" target="_blank" rel="noopener">unique ID that identifies each page/post</a>, I direct you to a previous article of mine.</p>
  299. <p>This feature is quite useful if we prefer that users do not access service pages, thank you pages, or <a href="https://www-posizionamento--seo-com.translate.goog/social-media-optimization/facebook-remarketing-come-perche-utilizzarla/?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US" target="_blank" rel="noopener">remarketing campaign</a> landing pages.<br />
  300. <a name="anzianita"></a></p>
  301. <h4>Display content seniority or freshness</h4>
  302. <p>If we wish to inform our users about which <strong>contents have been recently updated</strong> or which have remained unchanged for an extended period, we can automate this process using a script.</p>
  303. <h4>Adjust the quality of images (and their size)</h4>
  304. <p>Starting with the premise that the size of a <strong>graphic file should be minimized at the source</strong>, utilizing photo editing software, we can select the quality at which it will be saved among our media in WordPress.</p>
  305. <p>The code is as follows:</p>
  306. <p><code>add_filter( 'jpeg_quality', create_function('', 'return 100;' ));</code></p>
  307. <p>In this example, images will be loaded with a compression factor of <em>100%</em>, and by adjusting this parameter, we can reduce the quality to lower values ( <em>90%</em>, <em>80%</em> ).</p>
  308. <h4>Insert Google Analytics Tracking Code</h4>
  309. <p>If our theme does not allow for the addition of the <strong>Google Analytics tracking code</strong> or any other specific code that needs to be placed in the header of every page on our site, we can add the script to connect GA directly from the <em>function.php</em> file without needing to modify the <em>header.php</em> file.</p>
  310. <p><code>function add_google_analytics() {<br />
  311. echo "&lt;script&gt;";<br />
  312. echo "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){";<br />
  313. echo "(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),";<br />
  314. echo "m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)";<br />
  315. echo "})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');";<br />
  316. echo "ga('create', 'UA-XXXXXXXX-X', 'auto');";<br />
  317. echo "ga('send', 'pageview');";<br />
  318. echo "ga('set', 'anonymizeIp', true);";<br />
  319. echo "&lt;/script&gt;";<br />
  320. }<br />
  321. add_action('wp_head', 'add_google_analytics');</code></p>
  322. <p>Certainly, you must substitute <em>UA-XXXXXXXX-X</em> with your Analytics account ID, and as you can observe, I have already provided the code above that adheres to the <a href="https://www-posizionamento--seo-com.translate.goog/search-engine-marketing/normativa-sui-cookie-infografica-del-garante-alla-privacy/?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US" target="_blank" rel="noopener">Italian cookie regulations</a>.<br />
  323. <a name="autore"></a></p>
  324. <h4>Modify the name of the guest post author</h4>
  325. <p>If your website features multiple Guest Posts, you don’t need to create a new user each time you publish one. Instead, you can utilize this feature to <strong>insert a custom field</strong> in the post associated with the guest post, where you can specify the author’s name.</p>
  326. <p><code>function guest_author_name( $name ) {<br />
  327. global $post;<br />
  328. $author = get_post_meta( $post-&gt;ID, 'guest-author', true );<br />
  329. if ( $author )<br />
  330. $name = $author;<br />
  331. return $name;<br />
  332. }<br />
  333. add_filter( 'the_author', 'guest_author_name' );<br />
  334. add_filter( 'get_the_author_display_name', 'guest_author_name' );</code></p>
  335. <p><span class="">The custom variable to be included in the article whose </span><strong><span class="">author name you wish to modify</span></strong><span class=""> is referred to as </span><code>guest-author</code><span class="">, and its value should be the name of the author of the guest post.</span></p>
  336. <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8846" src="https://www.posizionamento-seo.com/wp-content/webp-express/webp-images/uploads/2016/11/variabile-guest-post.jpg.webp" alt="guest post variable" width="600" height="118" title="Custom Wordpress Code 10"></p>
  337. <hr />
  338. <p>&nbsp;</p>
  339. <p>If you need any WordPress custom coding for you website, <a href="https://jonbardiwebdesign.co.uk/#letstalk">please don&#8217;t hesitate to get in touch!</a></p>
  340. ]]></content:encoded>
  341. </item>
  342. <item>
  343. <title>Increase WordPress Site Speed</title>
  344. <link>https://jonbardiwebdesign.co.uk/increase-wordpress-site-speed/</link>
  345. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  346. <pubDate>Tue, 20 May 2025 10:46:53 +0000</pubDate>
  347. <category><![CDATA[WordPress Web Design and SEO]]></category>
  348. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5117</guid>
  349.  
  350. <description><![CDATA[Increase WordPress Site Speed Everybody who has a WordPress website needs to understand how to Increase WordPress Site Speed! Boosting your WordPress site&#8217;s speed is key to enhancing user experience, and it offers a twofold benefit. Better search engine rankings Better user experience When it comes to precautions you should take, like choosing a solid [&#8230;]]]></description>
  351. <content:encoded><![CDATA[<h1>Increase WordPress Site Speed</h1>
  352. <p>Everybody who has a WordPress website needs to understand how to <strong>Increase WordPress Site Speed!</strong> Boosting your WordPress site&#8217;s speed is key to enhancing user experience, and it offers a twofold benefit.</p>
  353. <ul>
  354. <li><strong>Better search engine rankings</strong></li>
  355. <li><strong>Better user experience</strong></li>
  356. </ul>
  357. <p>When it comes to precautions you should take, like choosing a solid hosting service (I suggest <a href="https://www.siteground.com/" target="_blank" rel="noopener">Siteground</a>), having fast-loading pages (especially if you&#8217;re using a CMS like WordPress), you definitely want to consider using a cache plugin too.</p>
  358. <p>It can be tricky to pick the right one, but a good starting point is to familiarize yourself with a few options.</p>
  359. <p>Now, let&#8217;s dive into why these plugins matter and what caching really is.</p>
  360. <h2 class="wp-block-heading">Plugins and Cache</h2>
  361. <p>The cache is like a memory bank in your computer that keeps track of info you&#8217;ve used recently. For instance, when you visit a website, the cache holds a static version of that page.</p>
  362. <p>So, when you revisit, your browser can pull most of the files from the cache, which can really speed up your WordPress site.</p>
  363. <p>But here&#8217;s the thing: picking the right cache plugin can be tricky. Each one has its own unique features, and if you look at the paid options, there are even more factors to consider!</p>
  364. <p>Sometimes, a plugin that works great for one site might not do the same for another. The key to finding the best fit? <strong>Just try different ones out!</strong></p>
  365. <h2 class="wp-block-heading">Top 3 Cache Plugins</h2>
  366. <p>You don&#8217;t always need a cache management plugin, especially if you&#8217;re using a custom server setup.</p>
  367. <p>But if you&#8217;re on shared hosting, it might be pretty essential.</p>
  368. <p>To find the best plugin, make sure to run speed tests with tools like Google Search Console or GTMetrix after setting up each plugin properly.</p>
  369. <p>This way, you&#8217;ll see how each WordPress cache plugin affects your site.</p>
  370. <p>Remember to test each one multiple times to clear up any doubts about its effectiveness and ensure your site is really using the cache.</p>
  371. <h3 class="wp-block-heading">WP Rocket</h3>
  372. <p>This might just be the top paid plugin for managing cache. <strong><a href="https://wp-rocket.me/" target="_blank" rel="noopener">WP Rocket</a></strong> has three yearly subscription options.</p>
  373. <p>Alternatively, you can buy the plugin outright for a one-time fee: $39 for one site, $99 for three, and $299 for unlimited sites.</p>
  374. <p>Just keep in mind that after a year, you won&#8217;t get support or updates anymore.</p>
  375. <p>There&#8217;s no free trial or version available, but if you&#8217;re not happy with it, you can get a refund within 14 days of buying.</p>
  376. <h4 class="wp-block-heading">Why Choose WP Rocket</h4>
  377. <p>These are some of the benefits of this plugin:</p>
  378. <ul>
  379. <li>WP Rocket is a favourite among both developers and beginners because of its easy-to-use interface. Many free plugins can be pretty complicated for newbies since they often need some technical know-how.</li>
  380. <li>Includes a tool for cleaning your WordPress database and reducing the number of resources used.</li>
  381. <li>With WP Rocket you can easily integrate Lazy Load (Gutenberg does this too). This basically means that images will not load on your site until the user scrolls down to view them.</li>
  382. <li>WP Rocket integrates with some of the best multilingual plugins.</li>
  383. <li>Allows you to preload the cache.</li>
  384. <li>You receive tools for both minification and concatenation.</li>
  385. <li>It works seamlessly with E-Commerce sites, which are the ones that need cache optimization the most.</li>
  386. </ul>
  387. <h3 class="wp-block-heading">WP Super Cache</h3>
  388. <p><strong><a href="https://wordpress.org/plugins/wp-super-cache/" target="_blank" rel="noopener">WP Super Cache</a></strong> is a popular open-source caching plugin with millions of users.</p>
  389. <p>It might get mixed up with W3 Total Cache since their names are quite similar and both are open-source.</p>
  390. <p>To decide which one to use, you&#8217;ll need to install and test them separately. One reason you might prefer <strong><a href="https://wordpress.org/plugins/wp-super-cache/" target="_blank" rel="noopener">WP Super Cache</a> </strong>is that it&#8217;s developed by the Automattic team, the same folks behind WordPress. Even though it&#8217;s open-source and doesn&#8217;t have a PRO version, it does offer three different caching modes.</p>
  391. <p>A cool feature is that it generates static HTML files instead of PHP scripts, which really speeds up page loading times.</p>
  392. <p>Among the three modes, the Simple Mode is definitely the best choice for regular WordPress users since it&#8217;s the least complicated.</p>
  393. <p>On the flip side, there&#8217;s the Expert Mode for more advanced users who want to tweak their cache settings, including editing the .htaccess file.</p>
  394. <h2 class="wp-block-heading"><span class="">Why is WP Super Cache considered one of the best WordPress caching plugins?</span></h2>
  395. <ul>
  396. <li>It is a free and Open Source product developed by Automattic, a guarantee of its updating and longevity.</li>
  397. <li>In the backend interface, most of the common settings are already enabled by default. It is easy enough to understand even for beginners.</li>
  398. <li>Three caching modes to choose from, which provides for a wide range of users.</li>
  399. <li>The plugin has a unique feature called Cache Rebuilding, which makes sure that your blog cache, does not get cleared every time there is a new comment in your blog posts. Instead it rebuilds the cache, and serves the old page to other users.</li>
  400. </ul>
  401. <h3 class="wp-block-heading">W3 Total Cache</h3>
  402. <p><strong><a href="https://wordpress.org/plugins/w3-total-cache/" target="_blank" rel="noopener">W3 Total Cache</a> </strong>is a popular open-source WordPress plugin for managing cache, boasting millions of active users.</p>
  403. <p>One of its perks is seamless integration with a CDN, making it effective for both desktop and mobile sites.</p>
  404. <p>Since it&#8217;s open-source, you won&#8217;t have to pay for a subscription. The plugin helps save bandwidth through features like minification, HTTP compression, and feed optimization.</p>
  405. <p>However, it does come with a lot of options to configure, which can make it feel less user-friendly and straightforward.</p>
  406. <ul>
  407. <li>The plugin is <strong>compatible with all types of hosting</strong> , such as dedicated servers, shared hosting and clusters.</li>
  408. <li>Caching is for all environments, including mobile. This way, when someone comes to your website from a mobile device, they will still get the same caching benefits as if they were on a desktop.</li>
  409. <li>SSL support is useful when you are trying to make your online store faster.</li>
  410. <li>The CDN works with the media library so your images are optimized too.</li>
  411. <li>Minification and compression are available, along with database caching, objects on disk, and posts.</li>
  412. </ul>
  413. <h2 class="wp-block-heading">Summary and conclusions</h2>
  414. <p>You probably get how crucial it is to set up some caching on your WordPress site. But let&#8217;s be real, the cache settings can be a bit tricky to navigate.</p>
  415. <p>That&#8217;s why using a caching plugin might be a smart move, especially if you&#8217;re new to this. If you&#8217;re on Managed WordPress hosting, you&#8217;re in luck—no need for extra plugins since your provider handles everything automatically.</p>
  416. <p>But if you&#8217;re not, one of the options mentioned earlier could work well for you.</p>
  417. <p>If you need help with <strong><a href="https://jonbardiwebdesign.co.uk/wordpress-optimisation/">WordPress Optimisation</a></strong>, don&#8217;t hesitate to<a href="#letstalk"><strong> get in touch</strong></a> &#8211; and I&#8217;ll be sure to guide you in the right direction!</p>
  418. <p>To find out which plugin suits you best, you&#8217;ll need to try a few and see what fits. If you enjoyed this article or think it could help someone else, feel free to share it on your social media!</p>
  419. ]]></content:encoded>
  420. </item>
  421. <item>
  422. <title>WordPress Website Malware Removal</title>
  423. <link>https://jonbardiwebdesign.co.uk/wordpress-website-malware-removal/</link>
  424. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  425. <pubDate>Tue, 13 May 2025 11:26:52 +0000</pubDate>
  426. <category><![CDATA[WordPress Web Design and SEO]]></category>
  427. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5400</guid>
  428.  
  429. <description><![CDATA[WordPress Website Malware Removal If you&#8217;re reading this article, it&#8217;s likely that you&#8217;re facing an issue with your website. One of the most common challenges, particularly for WordPress sites, is malware. Rather than focusing on what malware is and why it leads to website hacks, let&#8217;s get straight to the solutions you need. How to [&#8230;]]]></description>
  430. <content:encoded><![CDATA[<h1>WordPress Website Malware Removal</h1>
  431. <p>If you&#8217;re reading this article, it&#8217;s likely that you&#8217;re facing an issue with your website. One of the most common challenges, particularly for WordPress sites, is malware. Rather than focusing on what malware is and why it leads to website hacks, let&#8217;s get straight to the solutions you need.</p>
  432. <h2 class="wp-block-heading"><span class="VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q">How to remove malware from a website</span></h2>
  433. <p>Let me begin by saying that this isn&#8217;t an easy task, and prevention is usually the most effective strategy. However, if your website has already been compromised, there&#8217;s no reason to delay. Let&#8217;s explore the steps to take, but keep in mind that finding a solution isn&#8217;t always straightforward. You may often need to reach out to a developer, and if you wish, I can assist you with that process.</p>
  434. <h2 class="wp-block-heading"><span class="">How did they hack my website?</span></h2>
  435. <p>The number of hacked websites is on the rise, often due to desperate circumstances. Frequently, this stems from inadequate website maintenance or subpar work by developers. We regularly find ourselves addressing hacks and eliminating malware for several reasons:</p>
  436. <ul>
  437. <li>outdated WordPress core</li>
  438. <li>neglected plugin updates</li>
  439. <li>and the use of NULLED THEMES—(essentially cracked templates)</li>
  440. </ul>
  441. <p>In an attempt to save 60 or 70 euros, customers may choose these options, but as the saying goes, nothing is truly free, and they ultimately bear the consequences. Modern hacking techniques and malware can be particularly insidious; they may not disrupt the website&#8217;s functionality but can create hidden pages that link to disreputable sites. Search engines like Google can identify these issues, leading to penalties that result in a significant drop in traffic for the affected website.</p>
  442. <h2 class="wp-block-heading"><span class="">6 Steps to Remove Malware from Website</span></h2>
  443. <p>Here are six straightforward steps to effectively eliminate malware from your website. It&#8217;s crucial to follow these steps in the order presented, as they are designed with a specific logic that will become clear by the end. Let&#8217;s dive into the six steps for removing a hack:</p>
  444. <p>1. Backup your website</p>
  445. <p>2. Update your plugins</p>
  446. <p>3. Update WordPress</p>
  447. <p>4. Clean your WordPress database</p>
  448. <p>5. Replace the WP-ADMIN and WP-INCLUDES folders</p>
  449. <p>6. Change ALL PASSWORDS!</p>
  450. <h3 class="wp-block-heading"><span class="">Create a website backup</span></h3>
  451. <p>Once you&#8217;ve created a backup, you can confidently proceed to eliminate the malware from your site. Frequently, when a website is hacked, updating it can lead to errors, so having a backup enables you to revert to a previous state and possibly enlist the help of a developer. <a href="https://jonbardiwebdesign.co.uk/how-to-backup-a-wordpress-site/">Here&#8217;s how to back up your website.</a></p>
  452. <h3 class="wp-block-heading"><span id="Aggiornare_i_plugin" class="ez-toc-section"></span>Update plugins</h3>
  453. <p>Once you&#8217;ve secured a backup of your website, you can proceed with updating your plugins. These updates typically include enhanced security measures. If your plugins were previously exploited for hacking, deleting them and replacing them with updated versions will replace the compromised files, effectively resolving the issue.</p>
  454. <h3 class="wp-block-heading"><span id="Aggiornare_WordPress" class="ez-toc-section"></span>Update WordPress</h3>
  455. <p>Originally designed for blogging, WordPress is now less frequently used for personal blogs and is increasingly favoured for e-commerce and professional sites.</p>
  456. <p>Consequently, updates typically focus on fixing minor issues, introducing new features, and addressing security vulnerabilities.</p>
  457. <p>When you update WordPress, most files are replaced, which means there&#8217;s a significant chance that any infected files will be overwritten, ideally resolving the issue.</p>
  458. <p>However, these measures often only tackle &#8216;minor&#8217; malware; sometimes, a more hands-on approach is necessary to thoroughly clean the files. Unfortunately, there are no definitive guides for this process—it&#8217;s either a matter of knowing what to search for or it becomes a daunting task akin to finding a needle in a haystack.</p>
  459. <h3 class="wp-block-heading"><span id="Ripulire_il_database_di_wordpress" class="ez-toc-section"></span>Clean up WordPress database</h3>
  460. <p>The next task is to tidy up your WordPress database. There&#8217;s no need to worry about losing your content; you&#8217;ll simply be removing unnecessary remnants that WordPress retains without your knowledge. You won&#8217;t need to be familiar with MySQL or complex queries for this process. Just install the WpSweep plugin, and you&#8217;re good to go.</p>
  461. <p>Once you&#8217;ve installed the free plugin available at this link <a href="https://it.wordpress.org/plugins/wp-sweep/" target="_blank" rel="noopener">WpSweep</a>, navigate to the &#8216;wp sweep&#8217; option within the tool. Scroll down and select &#8216;sweep all.&#8217;</p>
  462. <p>I highly recommend backing up your website first, so if anything goes awry, you can easily revert to the previous state.</p>
  463. <h3>Replace the WP-ADMIN and WP-INCLUDES folders</h3>
  464. <p>If your WordPress site has been infected with malware, one of the most effective ways to clean it is by replacing the <strong data-start="187" data-end="199">wp-admin</strong> and <strong data-start="204" data-end="219">wp-includes</strong> folders—these core directories are rarely modified, making them prime candidates for a safe refresh.</p>
  465. <p>By swapping them out with fresh copies from the official WordPress release, you can eliminate hidden malicious code while preserving your content and customizations. Here’s how to do it:</p>
  466. <p><strong data-start="510" data-end="516">1.</strong> First, back up your entire site (just in case!).<br data-start="565" data-end="568" /><strong data-start="568" data-end="574">2.</strong> Download the latest version of WordPress from <a class="" href="https://wordpress.org" target="_new" rel="noopener" data-start="621" data-end="659">wordpress.org</a>.<br data-start="660" data-end="663" /><strong data-start="663" data-end="669">3.</strong> Unzip the package and locate the <code data-start="703" data-end="713">wp-admin</code> and <code data-start="718" data-end="731">wp-includes</code> folders.<br data-start="740" data-end="743" /><strong data-start="743" data-end="749">4.</strong> Using FTP or your hosting file manager, delete the <code data-start="801" data-end="811">wp-admin</code> and <code data-start="816" data-end="829">wp-includes</code> folders from your live site.<br data-start="858" data-end="861" /><strong data-start="861" data-end="867">5.</strong> Upload the fresh <code data-start="885" data-end="895">wp-admin</code> and <code data-start="900" data-end="913">wp-includes</code> folders from the new WordPress download.<br data-start="954" data-end="957" /><strong data-start="957" data-end="963">6.</strong> Clear your site cache and test your site to ensure everything is working correctly.</p>
  467. <p>This process wipes out most deeply embedded malware in core files while keeping your themes, plugins, and content intact. It&#8217;s like giving your WordPress engine a clean slate—no code clutter, just a smooth, secure reboot.</p>
  468. <h3 class="wp-block-heading"><span id="Installare_un_plugin_con_Wordefence" class="ez-toc-section"></span>Installing a Plugin with Wordfence</h3>
  469. <p>We&#8217;re almost there!</p>
  470. <p>After you complete the steps outlined above, you&#8217;ll be ready to install a plugin that scans your website to ensure the issue is resolved.</p>
  471. <p>I recommenced WordFence to project your website, which you can find more information about by<a href="https://www.wordfence.com/" target="_blank" rel="noopener"> following this link.</a></p>
  472. <p>This plugin also provides real-time protection against any new threats, allowing you to focus on your business and website.</p>
  473. <p>Remember, it&#8217;s crucial to follow these steps in the specified order.</p>
  474. <p>If you need further help, I&#8217;m here to help you resolve the issue the same day at an affordable price. I also highly recommend setting up a maintenance and support plan afterward—it&#8217;s always better to prevent issues than to fix them later.</p>
  475. <p>It&#8217;s important that your customers don&#8217;t encounter unreliable sites when visiting yours.</p>
  476. <h2 class="wp-block-heading"><span id="Rimozione_Malware_siti_web_Conclusione" class="ez-toc-section"></span>Website Malware Removal: Conclusion</h2>
  477. <p>Your website should now be secure and free from malware.</p>
  478. <p>It&#8217;s important to perform regular maintenance to keep it that way.</p>
  479. <p>While removing malware and addressing potential hacks can be challenging, this guide will help you navigate the process with ease.</p>
  480. <p>Don&#8217;t forget to check your website&#8217;s sitemap to identify any unusual redirecting pages.</p>
  481. <p>If you&#8217;re unsure how to locate it, simply search for your site on Google using the format site:yoursitename.extension, such as site:armandoferrandino.it, and you&#8217;ll see a complete list of indexed pages, making it easier to spot any new malicious content.</p>
  482. <p>&nbsp;</p>
  483. ]]></content:encoded>
  484. </item>
  485. <item>
  486. <title>How to Backup a WordPress Site</title>
  487. <link>https://jonbardiwebdesign.co.uk/how-to-backup-a-wordpress-site/</link>
  488. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  489. <pubDate>Fri, 09 May 2025 12:31:18 +0000</pubDate>
  490. <category><![CDATA[WordPress Web Design and SEO]]></category>
  491. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5103</guid>
  492.  
  493. <description><![CDATA[How to Backup a WordPress Site If you&#8217;re still questioning the importance of backing up your WordPress site, it&#8217;s time to stop and take action! To prevent your site from malfunctioning due to errors—like when an update to the WordPress core disrupts certain features—the best way to safeguard your work is by having a backup [&#8230;]]]></description>
  494. <content:encoded><![CDATA[<h1>How to Backup a WordPress Site</h1>
  495. <p>If you&#8217;re still questioning the importance of backing up your WordPress site, it&#8217;s time to stop and take action!</p>
  496. <p>To prevent your site from malfunctioning due to errors—like when an update to the WordPress core disrupts certain features—the best way to safeguard your work is by having a backup ready for restoration.</p>
  497. <p>Restoring from a backup can save you countless hours of troubleshooting to identify the issue that caused the disruption. Plus, having a backup allows you to easily duplicate your site or transfer it to a new hosting provider (and if you&#8217;re unsure about which hosting to choose, I&#8217;m here to help!).</p>
  498. <p>In this article, I&#8217;ll guide you through the process, highlighting the key elements of your site that need backing up and presenting two different methods to do so: manually or using plugins.</p>
  499. <p>You can navigate to your preferred method using the table of contents below!</p>
  500. <h2 id="1-" class="wp-block-heading">What to Know Before Backing Up a WordPress Site</h2>
  501. <p>First and foremost, it&#8217;s essential to understand that WordPress consists of a set of files necessary for the CMS to function properly.</p>
  502. <p>This naturally leads to the question: &#8216;So, I just need to copy all these files, right?&#8217;</p>
  503. <p>Instead of a straightforward yes or no, let me explain that the answer involves two parts:</p>
  504. <ul>
  505. <li>The files in the WordPress root directory</li>
  506. <li>The WordPress Database</li>
  507. </ul>
  508. <p>The main directory of WordPress is the root where all the files that collectively form your web pages are stored.</p>
  509. <p>You can access this folder by connecting to your server via FTP or, more conveniently, through your cPanel, where you can look for files in specific folders like &#8216;root&#8217;, &#8216;public&#8217;, or &#8216;public_html&#8217;. Occasionally, the folder might even bear the name of your website.</p>
  510. <h2 class="wp-block-heading"><img loading="lazy" decoding="async" class="wp-image-2806" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/contenuto-wordpress-ftp-min-1024x261.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/contenuto-wordpress-ftp-min-1024x261.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/contenuto-wordpress-ftp-min-300x77.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/contenuto-wordpress-ftp-min-768x196.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/contenuto-wordpress-ftp-min.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1324w" alt="Freelance WordPress Web Design - contenuto wordpress ftp min" width="1024" height="261" title="How to Backup a WordPress Site 21"></h2>
  511. <figure class="wp-block-image size-large"><figcaption>WordPress Folder Contents via FTP</figcaption></figure>
  512. <p>As you can see from the image above, this folder contains all the WordPress files and directories, including theme folders, plugin folders, and uploads folders.</p>
  513. <p>On one side, we have the files that enable WordPress to operate, while on the other side, there&#8217;s the database that holds the actual content of WordPress. (see below).</p>
  514. <p>Each table within the database is designated for storing the data of a WordPress site.</p>
  515. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="wp-image-2803" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/Tabelle-WP-1024x488.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Tabelle-WP-1024x488.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Tabelle-WP-300x143.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Tabelle-WP-768x366.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Tabelle-WP.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1214w" alt="Freelance WordPress Web Design - Tabelle WP" width="1024" height="488" title="How to Backup a WordPress Site 22"><figcaption>WordPress database tables.</figcaption></figure>
  516. <p>To ensure a complete backup, you&#8217;ll need to export the database that holds all the tables, preferably in SQL format.</p>
  517. <p>You have two choices: you can either perform a manual backup by copying the files and database yourself, or you can use a plugin that automates the process for you!</p>
  518. <p>Nowadays, if you choose a reliable hosting service, you typically won&#8217;t have to worry about backups, as most plans include automatic backups of your site, saving you the hassle of doing it manually or through plugins.</p>
  519. <h2>Why have a backup of your site?</h2>
  520. <p>The easiest way to answer this question is that having a backup of your site is always a smart move!</p>
  521. <p>My experience has shown me that how often you back up is also crucial.</p>
  522. <p>Just think about it: if your site were to be attacked today, a backup from yesterday would allow you to restore everything with the latest updates!</p>
  523. <p>Whether your site is a blog, a forum, or an online store, consider the potential losses if your backup is over a month old! Many web hosting services provide daily backups, and if you choose managed WordPress hosting, you should expect at least one backup each day. Additionally, there are WordPress plugins available that let you schedule backups, which can be a great option if you&#8217;re just starting out with budget shared hosting. So, my final piece of advice is to back up your site before you: make major changes to the code, content, or plugins; transfer it to a new host; or change your domain.</p>
  524. <h2 id="3-" class="wp-block-heading">How to Backup a WordPress Site (2 Methods)</h2>
  525. <p id="3-">Right then &#8211; now that you&#8217;re ready to create your own backup, let me guide you through the process. I&#8217;ll share two methods for backing up your WordPress site.</p>
  526. <h3 id="4-" class="wp-block-heading">How to Backup a WordPress Site Manually</h3>
  527. <p>By now, you should realize that the backup process involves duplicating all your files and exporting the data from your database.</p>
  528. <h4 id="5-" class="wp-block-heading">Back up your WordPress files</h4>
  529. <p>To proceed with copying files, you must use an FTP (File Transfer Protocol) client such as Cyberduck.</p>
  530. <p>When you purchased your web host, you will have received an email with the credentials needed to connect to your website via FTP or SFTP:</p>
  531. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" class="wp-image-2796" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/Connessione-Cyberduck.png.webp" sizes="(max-width: 503px) 100vw, 503px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Connessione-Cyberduck.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 503w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Connessione-Cyberduck-300x161.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w" alt="Freelance WordPress Web Design - Connessione Cyberduck.png" width="503" height="270" title="How to Backup a WordPress Site 23"><figcaption>Cyberduck credentials entry screen.</figcaption></figure>
  532. <p>Next, use these credentials to access your server and locate the WordPress root directory.</p>
  533. <p>For me, using my Arvixe Cpanel this directory is named public_html.</p>
  534. <p>At this stage, simply right-click on the folder and choose the Download option. The download might take some time since most WordPress sites contain hundreds or even thousands of files. After the backup is complete, rename the folder with the date of the download and store it securely. I recommend keeping a copy both physically and in a cloud storage service.</p>
  535. <p>This completes the first step of the backup process. Now, you just need to move on to copying the database!</p>
  536. <h4 id="6-" class="wp-block-heading">Copy WordPress Database</h4>
  537. <p>To get started, access your hosting&#8217;s cPanel and find the database section. Next, locate the phpMyAdmin option to open the database manager. From the left menu, choose your site&#8217;s database, and you&#8217;ll see a list of tables that looks something like this:</p>
  538. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="wp-image-2797" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1-1024x403.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1-1024x403.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1-300x118.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1-768x303.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1-1536x605.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1536w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/Database-WordPress-min-1.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1665w" alt="Freelance WordPress Web Design - Database WordPress min 1" width="1024" height="403" title="How to Backup a WordPress Site 24"><figcaption>WordPress Database and Tables sample screen.</figcaption></figure>
  539. <p>Now, go to the Export Tab located in the menu at the top right of your screen.</p>
  540. <p>A new window will appear where you can choose your export method. I</p>
  541. <p>f you opt for the quick method, you&#8217;ll receive an SQL file containing the entire database with all its tables.</p>
  542. <p>Next, select SQL from the drop-down menu as your export method and hit Run. That&#8217;s it!</p>
  543. <p>&nbsp;</p>
  544. <figure class="wp-block-image size-large"><figcaption><img loading="lazy" decoding="async" class="size-full wp-image-5315 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/exportdb.jpg" alt="Freelance WordPress Web Design -" width="1512" height="499" title="How to Backup a WordPress Site 25" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/exportdb.jpg 1512w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/exportdb-300x99.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/exportdb-1024x338.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/exportdb-768x253.jpg 768w" sizes="(max-width: 1512px) 100vw, 1512px" /></figcaption></figure>
  545. <p>Right now, you have a copy of both the files and the database. I recommend zipping everything into an archive and including the backup date in the name. This way, you&#8217;ll always have the latest version ready for restoration!</p>
  546. <h4 id="7-" class="wp-block-heading">Restore a WordPress Site Backup Manually</h4>
  547. <p>If you find yourself needing to restore your manual backup, the ideal approach is to upload the backup root folder to your server at the same level as the current one, but be sure to rename it first.</p>
  548. <p>After the upload is finished, remove the old root folder and rename the newly uploaded one to match the name of the deleted folder.</p>
  549. <p>Next, it&#8217;s time to restore your database backup. Head over to phpMyAdmin and locate your site&#8217;s database. From the top menu, choose the Import option.</p>
  550. <p>You&#8217;ll then be prompted to select a file for import and indicate its format.</p>
  551. <p><img loading="lazy" decoding="async" class="size-full wp-image-5316 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/importdb.jpg" alt="Freelance WordPress Web Design - importdb" width="1521" height="467" title="How to Backup a WordPress Site 26" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/importdb.jpg 1521w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/importdb-300x92.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/importdb-1024x314.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/importdb-768x236.jpg 768w" sizes="(max-width: 1521px) 100vw, 1521px" /></p>
  552. <figure class="wp-block-image size-full"></figure>
  553. <p>In this case, choose the SQL file you created earlier and hit the Run button located at the bottom of the screen.</p>
  554. <p>If the restoration is successful, a confirmation message will appear. To verify that everything is in order, just reconnect to your website, and your backup will have restored everything to the most recent version.</p>
  555. <p>If you restored after a site issue, everything should now be back to normal.</p>
  556. <h3 id="8-" class="wp-block-heading">How to Backup a WordPress Site with Plugins</h3>
  557. <p>If you&#8217;ve explored the internet, you&#8217;ve probably seen numerous plugins available for backing up a WordPress site.  However, it&#8217;s important to make a key distinction here.</p>
  558. <p>These plugins can actually be classified into two main categories:</p>
  559. <ul>
  560. <li><strong>plugin for a complete site backup</strong> : This type of plugin essentially creates complete backup copies of the site (files + database) that can be used at any time to restore the site;</li>
  561. <li><strong>plugin for an incremental backup of the site</strong> : In this case the plugin will take care of performing a backup only when changes are made to the site. In fact, during the scan, the plugin will recognize the new files and add them to the existing backup. With this method, you can save space on the disk and have a single backup copy with all the latest changes.</li>
  562. </ul>
  563. <p>As you might expect, the second option is certainly superior, which is why most plugins offering this type of backup come with a price. On the other hand, there are quite a few free tools available for the first solution.</p>
  564. <p>For the first solution &#8211; I always use my trusty plugin <mark class="has-inline-color has-vivid-cyan-blue-color">Duplicator</mark>.</p>
  565. <p>Duplicator is free and really simple to use. Once installed, activate the plugin and you should already see it in the WordPress menu on the left.</p>
  566. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="size-full wp-image-5314 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup.jpg" alt="Freelance WordPress Web Design - backup" width="1608" height="681" title="How to Backup a WordPress Site 27" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup.jpg 1608w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup-300x127.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup-1024x434.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup-768x325.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/05/backup-1536x651.jpg 1536w" sizes="(max-width: 1608px) 100vw, 1608px" /></figure>
  567. <p>&nbsp;</p>
  568. <p>Simply click on the appropriate menu item, and you&#8217;ll be directed to the initial screen displaying a summary of all the backup packages you&#8217;ve created.</p>
  569. <p>Since this is your first time using this plugin, the screen will naturally be blank. Next, hit the <strong>&#8216;Create New&#8217;</strong> button to move on to the following screen.</p>
  570. <p>Here, you can adjust various settings to enhance your backup, like renaming it or excluding certain elements such as plugins or uploads. However, I recommend keeping everything as is and just clicking the<strong> &#8216;Next&#8217; button</strong> to continue.</p>
  571. <p>&nbsp;</p>
  572. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="wp-image-2800" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-1024x430.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-1024x430.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-300x126.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-768x323.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-1536x646.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1536w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SETUP-DUPLICATOR-min-2048x861.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 2048w" alt="Freelance WordPress Web Design - SETUP DUPLICATOR min" width="1024" height="430" title="How to Backup a WordPress Site 28"><figcaption>Duplicator Backup Settings Edit Screen</figcaption></figure>
  573. <p>Now the plugin will scan your site and once finished you can click on the <strong>Compile</strong> Button .</p>
  574. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="wp-image-2802" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min-1024x694.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min-1024x694.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min-300x203.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min-768x521.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min-1536x1041.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1536w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/SCAN-DUPLICATOR-min.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1788w" alt="Freelance WordPress Web Design - SCAN DUPLICATOR min" width="1024" height="694" title="How to Backup a WordPress Site 29"><figcaption>Duplicator scan result screen.</figcaption></figure>
  575. <p>Well now the plugin will take care of creating a complete copy of both the WordPress files and its database. At the end you will see a screen like the one you see below:</p>
  576. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" class="wp-image-2801" src="https://enniodaneseweb.dev/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-1024x452.png.webp" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-1024x452.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1024w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-300x133.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 300w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-768x339.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 768w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-1536x679.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 1536w,https://enniodaneseweb-dev.translate.goog/wp-content/webp-express/webp-images/uploads/2022/04/EXPORT-DUPLICATOR-min-2048x905.png.webp?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US 2048w" alt="Freelance WordPress Web Design - EXPORT DUPLICATOR min" width="1024" height="452" title="How to Backup a WordPress Site 30"><figcaption>Backup File Download screen.</figcaption></figure>
  577. <p>At the end of this wizard, you can choose whether to download two files individually, or download a single zip file.</p>
  578. <h4 id="9-" class="wp-block-heading">Restore Duplicator Backup</h4>
  579. <p>To restore your site with Duplicator, you will need to follow these simple steps:</p>
  580. <ul>
  581. <li>Access your site through FTP and remove everything in the public_html folder.</li>
  582. <li>Then, upload the two files from your Duplicator backup, which include an installer.php file and a zip archive.</li>
  583. <li>Next, open your web browser and enter your site address followed by /installer.php, like www.sitename.com/installer.php (just replace sitename.com with your actual domain).</li>
  584. <li>You can now proceed with the Duplicator setup wizard. You will need your hosting database credentials to hand!</li>
  585. <li>At the end of these steps, the procedure will ask you to log in to your WordPress to delete the files that the plugin used for the recovery.</li>
  586. </ul>
  587. <p>If all went well &#8211; your site should be back online now!</p>
  588. <h2 id="10-" class="wp-block-heading">Conclusion</h2>
  589. <p>I&#8217;ve tried and tested these methods over time. While there are definitely simpler plugins than Duplicator, like UpdraftPlus for instance, I personally enjoy doing things manually. It allows me to manage the two files that Duplicator generates, which gives me a sense of control.</p>
  590. <p>How about you? Have you given either of these methods a shot, or do you lean towards something different?</p>
  591. <p>I hope you found the article helpful, and happy backing up to everyone!</p>
  592. ]]></content:encoded>
  593. </item>
  594. <item>
  595. <title>WordPress Custom Post Types</title>
  596. <link>https://jonbardiwebdesign.co.uk/wordpress-custom-post-types/</link>
  597. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  598. <pubDate>Thu, 08 May 2025 11:31:33 +0000</pubDate>
  599. <category><![CDATA[WordPress Web Design and SEO]]></category>
  600. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5292</guid>
  601.  
  602. <description><![CDATA[WordPress Custom Post Types Take Your Website Beyond the Blog – Smart, Structured Content That Grows With You On most WordPress sites, you start with just two types of content: Posts and Pages. And that’s fine—until it’s not. If you&#8217;re trying to build a more dynamic website—say a portfolio, a directory, a recipe collection, a [&#8230;]]]></description>
  603. <content:encoded><![CDATA[<h1 class="" data-start="247" data-end="278">WordPress Custom Post Types</h1>
  604. <p class="" data-start="279" data-end="364"><strong data-start="279" data-end="364">Take Your Website Beyond the Blog – Smart, Structured Content That Grows With You</strong></p>
  605. <p class="" data-start="366" data-end="489">On most WordPress sites, you start with just two types of content: <strong data-start="433" data-end="442">Posts</strong> and <strong data-start="447" data-end="456">Pages</strong>. And that’s fine—until it’s not.</p>
  606. <p class="" data-start="491" data-end="732">If you&#8217;re trying to build a more dynamic website—say a portfolio, a directory, a recipe collection, a product catalogue, a list of events or reviews—just using the standard blog post format quickly becomes messy, limited, and hard to manage.</p>
  607. <p class="" data-start="734" data-end="794">That’s where <strong data-start="747" data-end="785">WordPress Custom Post Types (CPTs)</strong> come in.</p>
  608. <hr class="" data-start="796" data-end="799" />
  609. <h2 class="" data-start="801" data-end="831">What Is a Custom Post Type?</h2>
  610. <p class="" data-start="833" data-end="1052">A Custom Post Type is a special kind of content you can add to your WordPress site, designed to hold specific types of information. Think of them like “custom containers” that help you organise content more efficiently.</p>
  611. <p class="" data-start="1054" data-end="1225">Instead of cramming everything into blog posts, you can create neatly separated sections of your site – each with their own layout, categories, filters, and functionality.</p>
  612. <hr class="" data-start="1227" data-end="1230" />
  613. <h2 class="" data-start="1232" data-end="1274">What Can Custom Post Types Be Used For?</h2>
  614. <p class="" data-start="1276" data-end="1376">Custom Post Types can be used for <em data-start="1310" data-end="1327">almost anything</em>. Here are a few examples I’ve built for clients:</p>
  615. <ul data-start="1378" data-end="1945">
  616. <li class="" data-start="1378" data-end="1458">
  617. <p class="" data-start="1380" data-end="1458"><strong data-start="1380" data-end="1406">Projects or Portfolios</strong> – Perfect for creatives, freelancers, or agencies</p>
  618. </li>
  619. <li class="" data-start="1459" data-end="1530">
  620. <p class="" data-start="1461" data-end="1530"><strong data-start="1461" data-end="1477">Testimonials</strong> – Display client feedback in a professional format</p>
  621. </li>
  622. <li class="" data-start="1531" data-end="1594">
  623. <p class="" data-start="1533" data-end="1594"><strong data-start="1533" data-end="1549">Team Members</strong> – Showcase your staff with bios and images</p>
  624. </li>
  625. <li class="" data-start="1595" data-end="1649">
  626. <p class="" data-start="1597" data-end="1649"><strong data-start="1597" data-end="1607">Events</strong> – With dates, locations, and RSVP links</p>
  627. </li>
  628. <li class="" data-start="1650" data-end="1721">
  629. <p class="" data-start="1652" data-end="1721"><strong data-start="1652" data-end="1678">Properties or Listings</strong> – Ideal for estate agents or directories</p>
  630. </li>
  631. <li class="" data-start="1722" data-end="1793">
  632. <p class="" data-start="1724" data-end="1793"><strong data-start="1724" data-end="1735">Courses</strong> – For trainers, teachers, and online learning platforms</p>
  633. </li>
  634. <li class="" data-start="1794" data-end="1863">
  635. <p class="" data-start="1796" data-end="1863"><strong data-start="1796" data-end="1807">Recipes</strong> – With ingredients, cooking steps, and nutrition info</p>
  636. </li>
  637. <li class="" data-start="1864" data-end="1945">
  638. <p class="" data-start="1866" data-end="1945"><strong data-start="1866" data-end="1882">Case Studies</strong> – For businesses that want to show off their success stories</p>
  639. </li>
  640. </ul>
  641. <p class="" data-start="1947" data-end="2115">Each Custom Post Type can have its own <strong data-start="1986" data-end="2003">custom fields</strong>, <strong data-start="2005" data-end="2019">categories</strong>, <strong data-start="2021" data-end="2029">tags</strong>, and even its own URL structure – so everything stays organised and easy to navigate.</p>
  642. <hr class="" data-start="2117" data-end="2120" />
  643. <h2 class="" data-start="2122" data-end="2151">Why Use Custom Post Types?</h2>
  644. <p class="" data-start="2153" data-end="2521">✅ <strong data-start="2155" data-end="2177">Improved structure</strong> – Keep your content clean and separated<br data-start="2217" data-end="2220" />✅ <strong data-start="2222" data-end="2248">Better user experience</strong> – Visitors can find what they’re looking for faster<br data-start="2300" data-end="2303" />✅ <strong data-start="2305" data-end="2318">SEO boost</strong> – Google loves well-organised, clearly defined content<br data-start="2373" data-end="2376" />✅ <strong data-start="2378" data-end="2396">Custom layouts</strong> – Make each content type look exactly how you want<br data-start="2447" data-end="2450" />✅ <strong data-start="2452" data-end="2464">Scalable</strong> – Add more content without cluttering your blog or pages</p>
  645. <hr class="" data-start="2523" data-end="2526" />
  646. <h2 class="" data-start="2528" data-end="2566">I’ll Build and Configure It for You</h2>
  647. <p class="" data-start="2568" data-end="2711">Whether you already know what Custom Post Type you need, or you just <em data-start="2637" data-end="2643">feel</em> like your site is outgrowing its blog, I’ll help you figure it out.</p>
  648. <ul data-start="2713" data-end="2907">
  649. <li class="" data-start="2713" data-end="2755">
  650. <p class="" data-start="2715" data-end="2755">I can <strong data-start="2721" data-end="2753">create the custom post types</strong></p>
  651. </li>
  652. <li class="" data-start="2756" data-end="2793">
  653. <p class="" data-start="2758" data-end="2793">Add <strong data-start="2762" data-end="2791">custom fields and filters</strong></p>
  654. </li>
  655. <li class="" data-start="2794" data-end="2846">
  656. <p class="" data-start="2796" data-end="2846">Make them <strong data-start="2806" data-end="2844">searchable, sortable, and taggable</strong></p>
  657. </li>
  658. <li class="" data-start="2847" data-end="2907">
  659. <p class="" data-start="2849" data-end="2907">And style them to <strong data-start="2867" data-end="2907">match the look and feel of your site</strong></p>
  660. </li>
  661. </ul>
  662. <p class="" data-start="2909" data-end="3059">All for a small hourly fee. No long contracts. No fluff. Just solid, useful WordPress work that makes your website more powerful and easier to manage.</p>
  663. <hr class="" data-start="3061" data-end="3064" />
  664. <h3 class="" data-start="3066" data-end="3122">Based in Manchester – Working Across the UK &amp; Europe</h3>
  665. <p class="" data-start="3124" data-end="3302">Whether you&#8217;re local or remote, I’m here to help. Most CPT setups can be done in just a few hours – and I’ll explain everything in plain English so you’re never left in the dark.</p>
  666. <hr class="" data-start="3304" data-end="3307" />
  667. <p class="" data-start="3309" data-end="3369"><strong data-start="3309" data-end="3369">Want your site to do more? <a href="#letstalk">Let’s talk Custom Post Types</a>.</strong></p>
  668. <p class="" data-start="3371" data-end="3464">Get in touch today for friendly, affordable help expanding your WordPress site the smart way.</p>
  669. ]]></content:encoded>
  670. </item>
  671. <item>
  672. <title>Tips on hiring a WordPress freelancer</title>
  673. <link>https://jonbardiwebdesign.co.uk/tips-on-hiring-a-wordpress-freelancer/</link>
  674. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  675. <pubDate>Tue, 06 May 2025 12:45:02 +0000</pubDate>
  676. <category><![CDATA[WordPress Web Design and SEO]]></category>
  677. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=5123</guid>
  678.  
  679. <description><![CDATA[Creating your own website can feel like a lot, especially if you&#8217;re not tech-savvy. Instead of diving into web development and design on your own, hiring a freelancer is usually a smarter and more budget-friendly choice. A talented freelance web developer can bring your website ideas to life way quicker than you could manage alone. [&#8230;]]]></description>
  680. <content:encoded><![CDATA[<div class="elementor-element elementor-element-2c7401d elementor-widget elementor-widget-text-editor" data-id="2c7401d" data-element_type="widget" data-widget_type="text-editor.default">
  681. <div class="elementor-widget-container">
  682. <p>Creating your own website can feel like a lot, especially if you&#8217;re not tech-savvy. Instead of diving into web development and design on your own, hiring a freelancer is usually a smarter and more budget-friendly choice. A talented freelance web developer can bring your website ideas to life way quicker than you could manage alone.</p>
  683. <p>They have the know-how in coding, design, SEO, and more—skills that would take ages to master. This way, you can concentrate on your main business while leaving the website creation to a pro. Plus, hiring a freelancer gives you access to skills you might not be able to afford for a full-time position, and you can find freelancers with various skills and price points to match your budget.</p>
  684. <p>Working successfully with a freelancer does take some planning and effort from you. This guide will share five handy tips to help you hire and collaborate with the right freelancer for your website project. We’ll discuss how to clarify your goals, find a qualified freelancer, set clear expectations, keep communication open, and agree on payment terms.</p>
  685. <p>Stick to these tips, and you’ll be on your way to having a professional freelancer create your dream website.</p>
  686. <p>Let’s dive in!</p>
  687. </div>
  688. </div>
  689. <div class="elementor-element elementor-element-eddd4d9 elementor-widget elementor-widget-text-editor" data-id="eddd4d9" data-element_type="widget" data-widget_type="text-editor.default">
  690. <div class="elementor-element elementor-element-a76e226 elementor-widget elementor-widget-heading" data-id="a76e226" data-element_type="widget" data-widget_type="heading.default">
  691. <div class="elementor-widget-container">
  692. <h2></h2>
  693. <h2 class="elementor-heading-title elementor-size-default">Define your goals and requirements</h2>
  694. </div>
  695. </div>
  696. <div class="elementor-element elementor-element-9adaebb elementor-widget elementor-widget-text-editor" data-id="9adaebb" data-element_type="widget" data-widget_type="text-editor.default">
  697. <div class="elementor-widget-container">
  698. <p>When kicking off a website project with a freelancer, the first thing you need to do is nail down your goals, know your target audience, and outline what features you want. Before reaching out to designers and developers, make sure you have a clear vision of what you want your website to accomplish and the key functionalities it should include.</p>
  699. <p>Here are some important points to consider:</p>
  700. <ul>
  701. <li>What’s the main goal of your website? Is it for selling products, showcasing your work, or sharing your thoughts? Get clear on your primary objectives.</li>
  702. <li>Who are you trying to reach? Get to know their demographics, interests, and needs so you can tailor the website experience for them.</li>
  703. <li>Jot down the pages, features, and design elements that are crucial for your goals and audience. These will be your website requirements.</li>
  704. <li>Think about how you’ll manage content moving forward. Will you take care of it, or will the freelancer need to step in?</li>
  705. <li>your budget and timeline expectations from the get-go.</li>
  706. </ul>
  707. <p>Once you’ve got your goals and requirements sorted, you can whip up a design brief to share with your freelancer. This document should cover all the nitty-gritty details of the website to make sure everyone’s on the same page about what’s expected. It should include your goals, target audience, content strategy, site map, design preferences, technical needs, timeline, budget, and how you’ll measure success.</p>
  708. <p>Having all this info upfront makes the website design process smoother and boosts your chances of being happy with the final product. Plus, it helps the freelancer give you a more accurate estimate and timeline.</p>
  709. </div>
  710. </div>
  711. <div class="elementor-element elementor-element-ec43392 elementor-widget elementor-widget-heading" data-id="ec43392" data-element_type="widget" data-widget_type="heading.default">
  712. <div class="elementor-widget-container">
  713. <p>&nbsp;</p>
  714. <h2 class="elementor-heading-title elementor-size-default">Search and find the right freelancer</h2>
  715. </div>
  716. </div>
  717. <div class="elementor-element elementor-element-3bcf67f elementor-widget elementor-widget-text-editor" data-id="3bcf67f" data-element_type="widget" data-widget_type="text-editor.default">
  718. <div class="elementor-widget-container">
  719. <p>When it’s time to find a freelancer to build your website, do your research to make sure you find the right fit. Here are some tips:</p>
  720. <ul>
  721. <li>Be sure to check out their portfolios and past client reviews to see the quality of their work.</li>
  722. <li>Contact the freelancer with a short description of your project and arrange the first video calls.</li>
  723. <li>Read customer reviews. This will give you insight into the overall experience, quality of work, timeliness, and communication.</li>
  724. <li>Trust your instincts. The right freelancer-client relationship is important to create a successful website .</li>
  725. </ul>
  726. </div>
  727. </div>
  728. <div class="elementor-element elementor-element-5f98bd2 elementor-widget elementor-widget-heading" data-id="5f98bd2" data-element_type="widget" data-widget_type="heading.default">
  729. <div class="elementor-widget-container">
  730. <p>&nbsp;</p>
  731. <h2 class="elementor-heading-title elementor-size-default">Be clear about the scope and schedule of the project</h2>
  732. </div>
  733. </div>
  734. <div class="elementor-element elementor-element-7bb8df3 elementor-widget elementor-widget-text-editor" data-id="7bb8df3" data-element_type="widget" data-widget_type="text-editor.default">
  735. <div class="elementor-widget-container">
  736. <p>When you&#8217;re looking for a freelancer to create your website, take some time to do your homework to ensure you choose the best match. Here are a few pointers:</p>
  737. <ul>
  738. <li>Check out their portfolios and client feedback to gauge the quality of their work</li>
  739. <li>Reach out to the freelancer with a brief overview of your project and set up an initial video call</li>
  740. <li>Look at customer reviews to get a sense of their overall experience, work quality, punctuality, and communication skills</li>
  741. <li>Trust your gut feeling</li>
  742. </ul>
  743. <p>A solid freelancer-client relationship is key to building a successful website .Being clear about the scope and timeline of your project ensures that your website is built efficiently, on budget and on time. Taking the time to plan properly up front can save you headaches down the road.</p>
  744. </div>
  745. </div>
  746. <div class="elementor-element elementor-element-c28d66f elementor-widget elementor-widget-heading" data-id="c28d66f" data-element_type="widget" data-widget_type="heading.default">
  747. <div class="elementor-widget-container">
  748. <p>&nbsp;</p>
  749. <h2 class="elementor-heading-title elementor-size-default">Maintain open communication</h2>
  750. </div>
  751. </div>
  752. <div class="elementor-element elementor-element-97d0684 elementor-widget elementor-widget-text-editor" data-id="97d0684" data-element_type="widget" data-widget_type="text-editor.default">
  753. <div class="elementor-widget-container">
  754. <p>Keeping the lines of communication open is super important for keeping your website project on track and making sure it meets your expectations. From the get-go, set up a way to share feedback. Try to have weekly or bi-weekly check-in calls or video chats to go over progress and tackle any questions or issues that pop up. If something urgent comes up, don’t wait for the next scheduled call to address it.</p>
  755. <p>Tackle any problems or concerns as soon as they come up. If a page isn’t functioning right or you’re confused about a design choice, reach out to your freelancer immediately. It’s way easier to make adjustments along the way than to wait until the end for big changes.</p>
  756. <p>Ensure everyone is clear on the timeline and that your freelancer is on track to deliver the final website by the agreed date. If the project scope changes or unexpected challenges come up that need more time, have an open conversation about adjusting the schedule and budget.</p>
  757. <p>Also, make sure to listen to the feedback your freelancer gives you. They might have some great insights from their experience in designing and building websites. Be open to suggestions that could enhance the website or improve user experience.</p>
  758. <p>Encouraging open and ongoing communication will help prevent frustration and ensure that both you and your freelancer feel heard and understood throughout the website development journey. This open feedback channel is crucial for bringing your website vision to life.</p>
  759. </div>
  760. </div>
  761. <div class="elementor-element elementor-element-c0effa8 elementor-widget elementor-widget-heading" data-id="c0effa8" data-element_type="widget" data-widget_type="heading.default">
  762. <div class="elementor-widget-container">
  763. <p>&nbsp;</p>
  764. <h2 class="elementor-heading-title elementor-size-default">Set clear payment terms</h2>
  765. </div>
  766. </div>
  767. <div class="elementor-element elementor-element-599dd24 elementor-widget elementor-widget-text-editor" data-id="599dd24" data-element_type="widget" data-widget_type="text-editor.default">
  768. <div class="elementor-widget-container">
  769. <p>When you bring a freelancer on board to create your website, make sure to clearly define the terms and payment plan right from the start. This way, you can steer clear of any misunderstandings or conflicts down the line.</p>
  770. </div>
  771. </div>
  772. <div class="elementor-element elementor-element-72a6ecf elementor-widget elementor-widget-heading" data-id="72a6ecf" data-element_type="widget" data-widget_type="heading.default">
  773. <div class="elementor-widget-container">
  774. <p>&nbsp;</p>
  775. <h3 class="elementor-heading-title elementor-size-default">Outline payment amounts and schedule in the contract</h3>
  776. </div>
  777. </div>
  778. <div class="elementor-element elementor-element-70641e6 elementor-widget elementor-widget-text-editor" data-id="70641e6" data-element_type="widget" data-widget_type="text-editor.default">
  779. <div class="elementor-widget-container">
  780. <p>Be specific about payment amounts, such as an hourly rate or a flat project rate. Also state when payments will be made, such as 50% up front, 25% at a milestone, and 25% upon completion.</p>
  781. </div>
  782. </div>
  783. <div class="elementor-element elementor-element-bed5256 elementor-widget elementor-widget-heading" data-id="bed5256" data-element_type="widget" data-widget_type="heading.default">
  784. <div class="elementor-widget-container">
  785. <p>&nbsp;</p>
  786. <h3 class="elementor-heading-title elementor-size-default">Put everything in writing</h3>
  787. </div>
  788. </div>
  789. <div class="elementor-element elementor-element-a0e0d8f elementor-widget elementor-widget-text-editor" data-id="a0e0d8f" data-element_type="widget" data-widget_type="text-editor.default">
  790. <div class="elementor-widget-container">
  791. <p>Always put payment terms in writing instead of just talking about them. Make sure your contract spells out the payment schedule and conditions to prevent any future issues.</p>
  792. <p>Both you and the freelancer should sign it to confirm you&#8217;re on the same page.</p>
  793. <p>Starting off with clear payment expectations will make the website creation process much easier for everyone involved.</p>
  794. <p>It&#8217;s important that you both agree in writing on the payment amounts, timeline, milestones, and terms.</p>
  795. </div>
  796. </div>
  797. <div class="elementor-element elementor-element-449868f elementor-widget elementor-widget-heading" data-id="449868f" data-element_type="widget" data-widget_type="heading.default">
  798. <div class="elementor-widget-container">
  799. <p>&nbsp;</p>
  800. <h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>
  801. </div>
  802. </div>
  803. <div class="elementor-element elementor-element-3879726 elementor-widget elementor-widget-text-editor" data-id="3879726" data-element_type="widget" data-widget_type="text-editor.default">
  804. <div class="elementor-widget-container">
  805. <p>Collaborating with a freelancer to create a website can be a fantastic way to get a budget-friendly, personalized site that fits your unique requirements.</p>
  806. <p>By clearly outlining your objectives, selecting the right freelancer, establishing clear expectations, keeping communication open, and agreeing on fair payment terms from the start, you can achieve a website that you’ll genuinely love.</p>
  807. <p>The perks of a successful freelance partnership include access to specialized skills, the flexibility to work according to your schedule, and the ability to produce quality work more quickly and at a lower cost than hiring an in-house web designer. With a bit of focus on the initial process, you can foster a positive working relationship that leads to an amazing website designed just for you.</p>
  808. <p>Now that you have a plan for working with a freelancer to design your site, it’s time to get started! If you need assistance in making your website vision a reality, I provide professional web design services to craft stunning, functional websites tailored to your business. With over a decade of experience designing websites for various clients, my personalized approach emphasizes understanding your business goals, brand, and target audience to create a custom website that truly meets your needs. So, if you need a <a href="https://jonbardiwebdesign.co.uk/lets-talk/">freelance WordPress expert</a> &#8211; don&#8217;t hesitate to <a href="https://jonbardiwebdesign.co.uk/lets-talk/">contact me today!</a></p>
  809. </div>
  810. </div>
  811. </div>
  812. ]]></content:encoded>
  813. </item>
  814. <item>
  815. <title>A choose your own path adventure &#8211; for adults!</title>
  816. <link>https://jonbardiwebdesign.co.uk/a-choose-your-own-path-adventure-for-adults/</link>
  817. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  818. <pubDate>Tue, 08 Apr 2025 14:30:38 +0000</pubDate>
  819. <category><![CDATA[Not Web Design]]></category>
  820. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=4974</guid>
  821.  
  822. <description><![CDATA[A CHOOSE YOUR OWN PATH ADVENTURE&#8230;FOR ADULTS! Well, would you look at that—after just 15 years, I&#8217;ve finally finished my choose your own adventure (although you&#8217;re not allowed to call it that &#8211; registered trademark or something &#8211; so I&#8217;ve called it a DECIDE YOUR OWN DEATH. This means it&#8217;s not just any book. This [&#8230;]]]></description>
  823. <content:encoded><![CDATA[<h1>A CHOOSE YOUR OWN PATH ADVENTURE&#8230;FOR ADULTS!</h1>
  824. <p>Well, would you look at that—after just 15 years, I&#8217;ve finally finished my choose your own adventure (although you&#8217;re not allowed to call it that &#8211; registered trademark or something &#8211; so I&#8217;ve called it a DECIDE YOUR OWN DEATH. This means it&#8217;s not just any book. This masterpiece comes complete with several branching storylines, multiple endings, morally dubious decisions, and lots and lots of death scenes!</p>
  825. <p>Ladies and gentlemen, I give you:</p>
  826. <h2><span style="color: #ff6600; font-size: 50px;">The Marvellous Adventures of Flashrat</span></h2>
  827. <p><img loading="lazy" decoding="async" class="alignright wp-image-4977 " src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/image-250x300.png" alt="Freelance WordPress Web Design - image" width="194" height="233" title="A choose your own path adventure - for adults! 35" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/image-250x300.png 250w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/image.png 512w" sizes="(max-width: 194px) 100vw, 194px" /></p>
  828. <p>In this deeply questionable tale, you play as Scott Macarthur, council toilet cleaner (freelance). A man of simple pleasures and even simpler hygiene habits, Scott resides in an abandoned shopping trolley in his local park after being booted out by his wife—who, as it turns out, has been up to all sorts of shenanigans with Scott&#8217;s best friend.</p>
  829. <p><strong>But hope is not lost.</strong></p>
  830. <p>There’s a chance—a tiny, whisky-stained chance—that Scott might just be a superhero in the making. He’s got a costume (sort of), a purpose (ish), and a mentor: the mysterious, possibly imaginary vigilante known only as Flashrat.</p>
  831. <p>Is Flashrat a genuine English-speaking crimefighter? Or is Scott just incredibly dehydrated and off his rocker from drinking something blue he found behind the Co-op?</p>
  832. <p><img loading="lazy" decoding="async" class="alignleft wp-image-4979 size-thumbnail" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cropped-flashrat-150x150.png" alt="flashrat" width="150" height="150" title="A choose your own path adventure - for adults! 36" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cropped-flashrat-150x150.png 150w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cropped-flashrat-300x300.png 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cropped-flashrat-200x200.png 200w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cropped-flashrat.png 512w" sizes="(max-width: 150px) 100vw, 150px" /></p>
  833. <ul>
  834. <li>Will you guide Scott toward redemption, heroism, and maybe even a home with an actual roof?</li>
  835. <li>Will Scott get his revenge on his wife, or will you lead him to a gooey, romantic, mills-and-boony reunion?</li>
  836. <li>Or will your decisions lead him to an inevitable, blood-soaked end involving evil mad scientists, the Yakuza, an evil genius living inside a volcano, a wolf-man (or sorts), a mysterious cobbler, the Brotherhood of the Bogbrush, secret microfilms, and, of course, the KGB?</li>
  837. </ul>
  838. <p>This is a dark, adult comedy packed with filthy jokes, tragic choices, and moments so surreal even David Lynch would ask you to tone it down. It is absolutely NOT for children or the easily offended.</p>
  839. <p>If you’ve ever wanted to star in your own grimy, low-budget superhero origin story—now’s your chance.</p>
  840. <p style="text-align: center;"><strong><a href="https://amzn.to/4coJRy0" target="_blank" rel="noopener">The Marvellous Adventures of Flashrat is available now on Amazon!</a></strong></p>
  841. <p><img loading="lazy" decoding="async" class="wp-image-4978 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cover-188x300.jpg" alt="Freelance WordPress Web Design - cover" width="236" height="377" title="A choose your own path adventure - for adults! 37" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cover-188x300.jpg 188w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cover-640x1024.jpg 640w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cover-768x1229.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/cover.jpg 875w" sizes="(max-width: 236px) 100vw, 236px" /></p>
  842. <p><a href="https://amzn.to/4coJRy0" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-4982 aligncenter" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/OIP-300x108.jpeg" alt="Freelance WordPress Web Design - OIP" width="233" height="84" title="A choose your own path adventure - for adults! 38" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/OIP-300x108.jpeg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2025/04/OIP.jpeg 474w" sizes="(max-width: 233px) 100vw, 233px" /></a></p>
  843. <p style="text-align: center;">If you&#8217;re interested (and I can&#8217;t imagine why you would be) in more of my creative writing, please look at my author website at <a href="https://jonbardi.com/" target="_blank" rel="noopener">jonbardi.com</a></p>
  844. <h1><b>Reviews!</b></h1>
  845. <p><b><i>5.0 out of 5 stars</i></b></p>
  846. <p><b> “Brilliant lawnmower”</b></p>
  847. <p><span style="font-weight: 400;">A brilliant lawnmower, very easy put together just by looking at pictures on box, delighted with my first cut, cuts close to the edges, and left my lawn looking lovely, it’s my first electric lawnmower and iv no complaints, does what it says on the box and I’m very happy with it.</span></p>
  848. <p><b><i>5.0 out of 5 stars</i></b></p>
  849. <p><b> “Worth every penny.”</b></p>
  850. <p><span style="font-weight: 400;">Brilliant!! Cleaned an outside wall and two cars so far. Easy to use, different sprays and strong jet. 2 batteries sold it to me, could not have imagined it would perform so well. An excellent piece of kit.</span></p>
  851. <p><b><i>5.0 ou</i></b><b><i>t of 5 stars</i></b></p>
  852. <p><b> “Great”</b></p>
  853. <p><span style="font-weight: 400;">It really absorbs water. 1 box lasted me almost a month, but I have very high humidity in the room and I used several boxes in different places (in the closet, near the bed.) There was a little less mold. And the air became a little less humid.</span></p>
  854. <p><b><i>5.0 out of 5 stars</i></b></p>
  855. <p><b><i>“</i></b><b> Absolutely bargain of the sea</b><b>son”</b></p>
  856. <p><span style="font-weight: 400;">You won&#8217;t find a better value tent for the money, absolutely blown away by it.</span></p>
  857. <p><span style="font-weight: 400;">Has opening both sides with awning on one side. Storage in all 4 corners. Loads of bag storage on both sides.</span></p>
  858. <p><span style="font-weight: 400;">I&#8217;ve used it a few times now and can be put up easily within 10mins even by a novice.</span></p>
  859. <p><b><i>5.0 out of 5 stars</i></b></p>
  860. <p><b> “Ideal for the job</b><b>!!”</b></p>
  861. <p><span style="font-weight: 400;">I purchased these cones on behalf of my church to enable us to reserve parking spaces at the front of our building when needed for wedding or funeral vehicles etc. They are ideal for the job, sturdy, colourful and clearly visible to traffic. An excellent purchase!!</span></p>
  862. <p><b><i>5.0 out of 5 stars</i></b></p>
  863. <p><b> “Good quality for price</b><b>”</b></p>
  864. <p><span style="font-weight: 400;">This is only a toilet brush I know, but it looks good. Surprisingly it doesn&#8217;t drip either, after a tap on the side of the bowl, easy to clean much better than our old bristle ones. We have replaced all our old ones with these.</span></p>
  865. <p><b><i>1.0 out of 5 stars</i></b></p>
  866. <p><b>“Würde es nicht empfehlen – NICHT SICHER!”</b></p>
  867. <p><span style="font-weight: 400;">Die Leiter ist nicht leicht und viel schwerer als erwartet. Außerdem ist es nicht stabil und gibt nach, wenn es ausgezogen wird. Ich würde der Leiter nicht zutrauen, über 10 Fuß hinauszuklettern, da sie nicht sicher ist. Ich würde es nicht empfehlen – diese Leiter ist </span><b>NICHT SICHER</b></p>
  868. ]]></content:encoded>
  869. </item>
  870. <item>
  871. <title>Retro Newspaper Website Design Package</title>
  872. <link>https://jonbardiwebdesign.co.uk/retro-newspaper-website-design-package/</link>
  873. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  874. <pubDate>Fri, 07 Jul 2023 12:45:47 +0000</pubDate>
  875. <category><![CDATA[WordPress Web Design and SEO]]></category>
  876. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=4390</guid>
  877.  
  878. <description><![CDATA[The ALL-IN-ONE Retro Newspaper Website Design Package! In this digital age, where trends come and go, the Retro Newspaper Website Design stands out as a delightful departure from the ordinary. Jon Bardi, a highly skilled and creative Freelance Web Designer, has mastered the art of recreating the magic of classic newspapers in a digital format. [&#8230;]]]></description>
  879. <content:encoded><![CDATA[<h1>The ALL-IN-ONE Retro Newspaper Website Design Package!</h1>
  880. <p><strong>In this digital age, where trends come and go, the Retro Newspaper Website Design stands out as a delightful departure from the ordinary</strong>. Jon Bardi, a highly skilled and creative Freelance Web Designer, has mastered the art of recreating the magic of classic newspapers in a digital format. Each element of the design, carefully curated, takes you on a journey to the bygone era when newspapers were the primary source of information and entertainment.</p>
  881. <h2>SIMPLY PUT</h2>
  882. <blockquote><p>Do you want a website or blog which looks like an old fashioned newspaper? You&#8217;re in luck! I have already designed one (and it looks like this&#8230;SEE BELOW) Instead of paying through the nose to have one designed from scratch, I can make your requested changes, upload you logo and blog posts and transfer the website to your chosen domain.</p></blockquote>
  883. <p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4391" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design.jpg" alt="Freelance WordPress Web Design - Retro Newspaper Web Design" width="1200" height="2501" title="Retro Newspaper Website Design Package 41" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design.jpg 1200w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-144x300.jpg 144w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-491x1024.jpg 491w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-768x1601.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-737x1536.jpg 737w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-983x2048.jpg 983w" sizes="(max-width: 1200px) 100vw, 1200px" /></p>
  884. <p><a href="http://news.jonbardi.com/" target="_blank" rel="noopener"><strong>Take a closer look by visiting the retro newspaper web design staging site itself here.</strong></a></p>
  885. <h2>What does the Retro Newspaper Website Design Package Include?</h2>
  886. <h3>1. Classic Aesthetics</h3>
  887. <p>The design package embraces the quintessential elements of a vintage newspaper, such as unique typography, sepia-toned colour schemes, and a layout reminiscent of old-world printing presses. Your website will exude an air of sophistication and charm that is sure to leave a lasting impression on your visitors.</p>
  888. <h3>2. Customization and Personalization</h3>
  889. <p>While the design embodies the spirit of retro, it is also highly customizable to match your unique brand identity. Jon Bardi understands that each business is distinct, and he will work closely with you to incorporate your logo, blog posts, and other branding elements seamlessly.</p>
  890. <h3>3. User-Friendly Functionality</h3>
  891. <p>Beyond aesthetics, Jon Bardi ensures that the Retro Newspaper Website Design is modern in its functionality. Your website will be responsive, optimized for various devices, and equipped with intuitive navigation to enhance the user experience.</p>
  892. <h3>4. SEO Optimization</h3>
  893. <p>In today&#8217;s competitive online landscape, visibility on search engines is crucial. The Retro Newspaper Website Design Package comes with built-in SEO features, expertly implemented by Jon Bardi, to help your website rank higher on search engine results pages.</p>
  894. <h3>5. Hourly Rate Customization</h3>
  895. <p>As your business evolves, you may wish to make changes to your website. Jon Bardi offers the flexibility of making design alterations at an hourly rate, allowing you to keep your website updated and in line with your evolving needs.</p>
  896. <p><img loading="lazy" decoding="async" class="size-full wp-image-4433 alignnone" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-1.jpg" alt="Retro Newspaper Web Design" width="612" height="492" title="Retro Newspaper Website Design Package 42" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-1.jpg 612w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Retro-Newspaper-Web-Design-1-300x241.jpg 300w" sizes="(max-width: 612px) 100vw, 612px" /></p>
  897. <p><a href="https://jonbardiwebdesign.co.uk/retro-newspaper-web-design-for-blogs/"><strong>Hop on over to here for all the details of the Retro Newspaper Website Design Package</strong></a></p>
  898. <p>The Retro Newspaper Website Design Package is your ticket to stand out in the crowded digital realm. Its distinctive appeal captures attention and sets you apart from the mundane,<strong> making your brand memorable to your audience.</strong></p>
  899. <div>
  900. <div class="Markdown markdown-body"></div>
  901. </div>
  902. <p>&nbsp;</p>
  903. ]]></content:encoded>
  904. </item>
  905. <item>
  906. <title>The Website Review</title>
  907. <link>https://jonbardiwebdesign.co.uk/the-website-review/</link>
  908. <dc:creator><![CDATA[cpdesign]]></dc:creator>
  909. <pubDate>Fri, 07 Jul 2023 12:16:22 +0000</pubDate>
  910. <category><![CDATA[WordPress Web Design and SEO]]></category>
  911. <guid isPermaLink="false">https://jonbardiwebdesign.co.uk/?p=4383</guid>
  912.  
  913. <description><![CDATA[The Website Review Welcome to a new feature &#8211; &#8220;The Website Review&#8221;. Each month (or maybe just this one) I will be turning by sharp, critical eye to web design from around the world. Thing of it a bit like Panorama, but in blog post format. This month: https://www.watching-grass-grow.com/ First Impressions As a web designer, [&#8230;]]]></description>
  914. <content:encoded><![CDATA[<h1>The Website Review</h1>
  915. <p>Welcome to a new feature &#8211; &#8220;The Website Review&#8221;. Each month (or maybe just this one) I will be turning by sharp, critical eye to web design from around the world.</p>
  916. <p>Thing of it a bit like Panorama, but in blog post format.</p>
  917. <h2>This month: <a href="https://www.watching-grass-grow.com/" target="_blank" rel="noopener">https://www.watching-grass-grow.com/</a></h2>
  918. <p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4384" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/watching-grass-grow.jpg" alt="Freelance WordPress Web Design - watching grass grow" width="850" height="418" title="The Website Review 47" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/watching-grass-grow.jpg 850w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/watching-grass-grow-300x148.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/watching-grass-grow-768x378.jpg 768w" sizes="(max-width: 850px) 100vw, 850px" /></p>
  919. <h3>First Impressions</h3>
  920. <p>As a web designer, I have seen my fair share of websites, but <a href="https://www.watching-grass-grow.com/" target="_blank" rel="noopener">watching-grass-grow.com</a> truly takes the cake in terms of uniqueness and charm! From the moment you land on the page, you&#8217;re greeted with a burst of excitement and a delightful quirkiness that is so refreshing in the world of web design.</p>
  921. <h3>Use of Colour</h3>
  922. <p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4385" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled.jpg" alt="Freelance WordPress Web Design - Untitled" width="1863" height="503" title="The Website Review 48" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled.jpg 1863w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled-300x81.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled-1024x276.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled-768x207.jpg 768w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/Untitled-1536x415.jpg 1536w" sizes="(max-width: 1863px) 100vw, 1863px" /></p>
  923. <p>First off, let&#8217;s talk about the use of colour. The vibrant green hues dominate the page, instantly immersing you in the subject matter. It&#8217;s like stepping into a grassy wonderland! The choice of blue for the text and links is a clever touch, creating a harmonious contrast that captures the essence of the website&#8217;s name. The colours are playful and inviting, making you feel like you&#8217;re embarking on a whimsical adventure.</p>
  924. <h3>User Experience</h3>
  925. <p>Now, let&#8217;s discuss user experience. The live webcam stream is an absolute gem! The fact that it updates every second is mind-boggling. It&#8217;s as if time slows down and you become one with the grass, witnessing its growth first-hand. And the addition of bluegrass music to accompany the visual spectacle is simply genius. It adds a toe-tapping rhythm to the whole experience, making it even more captivating.</p>
  926. <p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4386" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/grass-grow-blog.jpg" alt="Freelance WordPress Web Design - grass grow blog" width="1100" height="509" title="The Website Review 49" srcset="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/grass-grow-blog.jpg 1100w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/grass-grow-blog-300x139.jpg 300w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/grass-grow-blog-1024x474.jpg 1024w, https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/grass-grow-blog-768x355.jpg 768w" sizes="(max-width: 1100px) 100vw, 1100px" /></p>
  927. <h3>Subject Matter</h3>
  928. <p>The subject matter itself is undeniably fascinating. Who would have thought that watching grass grow could be so mesmerizing? The website has managed to turn something as mundane as lawn maintenance into a captivating event. It&#8217;s a testament to the creativity and ingenuity of the website&#8217;s creator. And let&#8217;s not forget the occasional car drive-by and other surprises that spice up the grass-watching adventure. It&#8217;s like a mini-drama unfolding before your eyes!</p>
  929. <h3>Use of Code</h3>
  930. <p>From a design perspective, I must commend the website for its retro aesthetic. The fact that the HTML and CSS actually validate is impressive in itself, but the nostalgic look and feel of the webpage take it to a whole new level. It&#8217;s a delightful throwback to the early days of the internet, evoking a sense of nostalgia and reminding us of how far web design has come. It&#8217;s like stepping into a time machine and experiencing the magic of the past while enjoying the wonders of the present.</p>
  931. <h3>Content</h3>
  932. <p>Lastly, I have to mention the Grass Blog and its extensive archives. The commitment to documenting the grass-growing journey over the years is commendable. It&#8217;s a treasure trove of grassy stories and anecdotes that add depth and character to the website. And let&#8217;s not forget the slo-mo version of 12 years of lawn mowing! It&#8217;s a whimsical and captivating display of dedication, providing an entertaining twist to an otherwise mundane task.</p>
  933. <h3>To Sum Up</h3>
  934. <p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4387" src="https://jonbardiwebdesign.co.uk/wp-content/uploads/2023/07/watching-grass-grow.gif" alt="Freelance WordPress Web Design - watching grass grow" width="212" height="92" title="The Website Review 50"></p>
  935. <p>In conclusion, <a href="https://www.watching-grass-grow.com/" target="_blank" rel="noopener">watching-grass-grow.com</a> is an absolute delight for both web designers and grass enthusiasts alike. Its vibrant color scheme, immersive user experience, and fascinating subject matter make it a true gem in the vast landscape of the internet. The website&#8217;s retro aesthetic and commitment to storytelling only add to its charm. Kudos to the creator for turning something as simple as watching grass grow into an extraordinary and captivating online experience. This is web design at its most playful, imaginative, and delightful best!</p>
  936. <p><strong>Visit https://www.watching-grass-grow.com/ now! You&#8217;d be glad you did!</strong></p>
  937. ]]></content:encoded>
  938. </item>
  939. </channel>
  940. </rss>
  941.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//jonbardiwebdesign.co.uk/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda