<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Александр</title>
    <description>The latest articles on DEV Community by Александр (@yodsira).</description>
    <link>https://dev.to/yodsira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4151956%2Fa73c036e-c3dc-4d65-a1cc-686f340419c7.png</url>
      <title>DEV Community: Александр</title>
      <link>https://dev.to/yodsira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yodsira"/>
    <language>en</language>
    <item>
      <title>Search Console warnings decoded: five worth acting on (and three to ignore)</title>
      <dc:creator>Александр</dc:creator>
      <pubDate>Tue, 06 Oct 2026 10:52:45 +0000</pubDate>
      <link>https://dev.to/yodsira/search-console-warnings-decoded-five-worth-acting-on-and-three-to-ignore-36o</link>
      <guid>https://dev.to/yodsira/search-console-warnings-decoded-five-worth-acting-on-and-three-to-ignore-36o</guid>
      <description>&lt;p&gt;Google Search Console means well, but it reports everything at the same volume. A missing hreflang tag and a hacked site get similar-looking red text. Here is a field guide: what deserves action today, and what you can safely stop worrying about.&lt;/p&gt;
&lt;h2&gt;Act on these&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;"Submitted URL returned 404" on important pages.&lt;/strong&gt; If products or key landing pages return 404s, Google removes them from the index while customers still hold the bookmarks. Restore the pages or 301-redirect them to the closest live equivalent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Duplicate without canonical".&lt;/strong&gt; Google found copies of a page and cannot tell which one to rank, so it picks — sometimes the wrong one. One canonical link per page solves it; e-commerce filters and pagination are the usual suspects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clickable elements too close together.&lt;/strong&gt; On phones, taps land on the wrong link. Since most shop traffic is mobile, this is direct revenue damage, not a technicality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"No hreflang return tags".&lt;/strong&gt; If you run multiple languages, Google does not believe your language versions reference each other correctly — so it may show the French page to German buyers. Fix with correct hreflang pairs; the tags must be static HTML, identical for every visitor, or caches will serve half the pair.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security actions (hacked content, malware).&lt;/strong&gt; Drop everything else. This is the one warning that can remove you from search entirely.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Safe to ignore (or almost)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Crawled - currently not indexed"&lt;/strong&gt; for thin utility pages. Google saw them and chose not to rank them — for tag archives and parameter pages that is the algorithm working correctly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sitemap "couldn't fetch" flapping&lt;/strong&gt; right after submission. Resubmit once, wait a week; it usually resolves itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Page with redirect" occurrences.&lt;/strong&gt; Informational: Google followed your redirects fine. Act only if a chain runs longer than two hops.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The weekly habit&lt;/h2&gt;
&lt;p&gt;Five minutes a week: open Coverage, sort by error, and ask one question — would a customer notice this? Customers notice 404s on products and broken mobile taps; nobody notices tag archives not being indexed. Treat Search Console as a to-do list where three items matter and the rest is ambience. And when a warning keeps appearing after you fixed it, check that the fix actually reaches Google's crawler — caches love serving old HTML.&lt;/p&gt;
&lt;p&gt;Yodsira builds small, focused tools for jobs like this — &lt;a href="https://yodsira.com/en/" rel="noopener noreferrer"&gt;browse the catalog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is about a tool built by &lt;a href="https://yodsira.com" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt; — &lt;a href="https://yodsira.com/en/product/search-console-warnings-decoded/" rel="noopener noreferrer"&gt;see the plugin page&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://yodsira.com/en/blog/search-console-warnings-decoded/" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>plugins</category>
      <category>php</category>
    </item>
    <item>
      <title>Why PDF converters mangle Cyrillic (and how to pick one that doesn't)</title>
      <dc:creator>Александр</dc:creator>
      <pubDate>Sat, 03 Oct 2026 15:05:56 +0000</pubDate>
      <link>https://dev.to/yodsira/why-pdf-converters-mangle-cyrillic-and-how-to-pick-one-that-doesnt-1p05</link>
      <guid>https://dev.to/yodsira/why-pdf-converters-mangle-cyrillic-and-how-to-pick-one-that-doesnt-1p05</guid>
      <description>&lt;p&gt;If you work with Russian, Ukrainian, Bulgarian or any Cyrillic-language documents, you know the special failure: the layout survives perfectly, and the text inside reads as squares, mojibake, or question marks. The document is useless — you cannot search it, spell-check it, or copy a single correct name out of it.&lt;/p&gt;
&lt;h2&gt;Why it happens&lt;/h2&gt;
&lt;p&gt;A PDF does not have to store text at all — it can store drawings of letters. When it does store text, it maps glyph shapes to character codes through an internal encoding table. Good converters reconstruct that table and produce real Unicode text. Bad ones assume a single Western encoding, and every Cyrillic letter becomes whatever that byte means in Latin — the classic mojibake. The layout engine does not matter here: if the text mapping fails, prettier paragraphs are still garbage.&lt;/p&gt;
&lt;p&gt;Second cause: fonts without proper Unicode tables embedded in the PDF — older scanners and 2000s-era Word exports. Third: OCR pipelines that recognize only Latin scripts, where Cyrillic falls back to the closest Latin shape. That last case is the most dangerous, because nothing &lt;em&gt;looks&lt;/em&gt; broken: real words turn into plausible-looking wrong ones.&lt;/p&gt;
&lt;h2&gt;The one-minute test&lt;/h2&gt;
&lt;p&gt;Before trusting any converter with real work, feed it a test document and check three things in the DOCX output:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Copy test.&lt;/strong&gt; Copy a sentence and paste it into a search box. If the word you know is there does not find the original document, the text layer is broken — no matter how good the output looks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed-alphabet test.&lt;/strong&gt; A line like "invoice № 45" with both alphabets together. Weak converters drop or corrupt one of them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Table test.&lt;/strong&gt; A price table with Cyrillic headers. Cells must stay cells, headers must stay readable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Run it once, and you know whether the tool respects your documents before it costs you a deadline. Our own PDF to Word converter is built around exactly these cases — Cyrillic and Latin intact, tables preserved, everything processed locally on your machine — but the test works with any converter, including free ones. Whatever you use: the paste-into-search check is the ten seconds that separate a working document from a nice-looking pile of garbage.&lt;/p&gt;
&lt;p&gt;If you would rather not wire this up by hand: this is exactly what &lt;a href="https://yodsira.com/en/product/pdf-to-word/" rel="noopener noreferrer"&gt;PDF to Word&lt;/a&gt; does.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is about a tool built by &lt;a href="https://yodsira.com" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt; — &lt;a href="https://yodsira.com/en/product/why-pdf-converters-mangle-cyrillic/" rel="noopener noreferrer"&gt;see the plugin page&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://yodsira.com/en/blog/why-pdf-converters-mangle-cyrillic/" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>plugins</category>
      <category>php</category>
    </item>
    <item>
      <title>Never Miss a Sale: Send WooCommerce Order Notifications to Telegram</title>
      <dc:creator>Александр</dc:creator>
      <pubDate>Wed, 30 Sep 2026 10:06:45 +0000</pubDate>
      <link>https://dev.to/yodsira/never-miss-a-sale-send-woocommerce-order-notifications-to-telegram-i97</link>
      <guid>https://dev.to/yodsira/never-miss-a-sale-send-woocommerce-order-notifications-to-telegram-i97</guid>
      <description>&lt;p&gt;You paid for ads, the customer paid for the order — and then you found out about the sale three hours later from a support ticket. If that sounds familiar, your email notifications are quietly costing you money. Order emails get spam-filtered, delayed, or swallowed by hosting mail queues, and every lost notification means slower response, a missed upsell window, or a customer who buys elsewhere next time. The fix is simpler than it sounds: add Telegram as a second, independent channel for order alerts.&lt;/p&gt;
&lt;h2&gt;Why email alone fails (and why it's not your fault)&lt;/h2&gt;
&lt;p&gt;Email was never designed to be instant or guaranteed. Between your store's server and your inbox sit spam filters, blacklists, and half-broken mail settings that can silently drop messages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spam filters.&lt;/strong&gt; Automated order notifications look exactly like the bulk mail filters love to quarantine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting mail limits.&lt;/strong&gt; Many shared hosts rate-limit outgoing email, so a burst of orders can sit in a queue for minutes or hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent failure.&lt;/strong&gt; When an email doesn't arrive, you get no error. You just don't know about the order.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The point isn't to abandon email — it's to stop depending on a single point of failure.&lt;/p&gt;
&lt;h2&gt;Why Telegram works as a backup channel&lt;/h2&gt;
&lt;p&gt;Telegram messages land on your phone in seconds, they don't pass through the same spam pipeline as email, and the setup itself is free. You can send alerts to yourself, to a private team chat, or both. And because notifications arrive where you already read messages, you'll actually see them — no more “another tab I never check.”&lt;/p&gt;
&lt;h2&gt;Setup checklist: from zero to instant alerts&lt;/h2&gt;
&lt;p&gt;The whole thing takes under half an hour, even if you've never touched a bot before.&lt;/p&gt;
&lt;h3&gt;Step 1. Create your Telegram bot&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Telegram and search for &lt;code&gt;@BotFather&lt;/code&gt; — the official bot for creating bots.&lt;/li&gt;
&lt;li&gt;Send &lt;code&gt;/newbot&lt;/code&gt; and follow the prompts. Pick something clear like &lt;em&gt;MyStore Orders&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;BotFather gives you a &lt;strong&gt;token&lt;/strong&gt; — a long string that is the key to your bot. Copy it and keep it private.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Step 2. Get your chat ID&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Send any message to your new bot so the conversation exists.&lt;/li&gt;
&lt;li&gt;Get your numeric chat ID — the easiest way is a lookup bot like &lt;code&gt;@userinfobot&lt;/code&gt;, or your plugin may detect it automatically during setup.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Step 3. Connect it to WooCommerce&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In your WordPress admin, go to &lt;em&gt;Plugins → Add New&lt;/em&gt; and search for &lt;em&gt;Telegram notifications WooCommerce&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Pick a plugin with a solid rating and recent updates, then install and activate it.&lt;/li&gt;
&lt;li&gt;Paste in the bot token and your chat ID.&lt;/li&gt;
&lt;li&gt;Choose which events trigger alerts: at minimum &lt;strong&gt;New order&lt;/strong&gt; and &lt;strong&gt;Failed order&lt;/strong&gt;. Add &lt;strong&gt;Refunded&lt;/strong&gt; and &lt;strong&gt;On hold&lt;/strong&gt; if they matter to your workflow.&lt;/li&gt;
&lt;li&gt;Hit the &lt;em&gt;send test message&lt;/em&gt; button. If it appears in Telegram, you're connected.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Step 4. Place a real test order&lt;/h3&gt;
&lt;p&gt;Don't trust the test button alone. Push a cheap product through a real checkout (or a test payment gateway) and watch what arrives in Telegram — and how fast.&lt;/p&gt;
&lt;h2&gt;Make it actually reliable&lt;/h2&gt;
&lt;p&gt;A backup channel only helps if it works when you need it. Run through this before you call it done:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retest after updates.&lt;/strong&gt; Plugin conflicts can silently break notifications. One test order after a WooCommerce or plugin update is cheap insurance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a group chat for teams.&lt;/strong&gt; Add whoever fulfills orders — everyone sees the sale at once, no forwarding, no “I didn't get the email.”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep email enabled.&lt;/strong&gt; Telegram is your backup, not your replacement. Customers still get receipts by email, and you keep a paper trail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protect your token.&lt;/strong&gt; Anyone with it can send messages through your bot. Don't paste it into chats, docs, or screenshots.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check Do Not Disturb.&lt;/strong&gt; Set an exception for Telegram, or at least for the bot chat, so late-night orders still reach you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Honest conclusion: Telegram notifications won't grow your sales by themselves — they just remove the delay and blindness between a customer paying and you acting. You still have to process orders, reply to people, and watch your store. But for twenty minutes of setup you get a channel that doesn't depend on spam filters or your host's mail server — and that alone saves you from the worst kind of problem: a paying customer you didn't know about.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://yodsira.com/en/blog/woo-telegram-orders/" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is about a tool built by &lt;a href="https://yodsira.com" rel="noopener noreferrer"&gt;Yodsira&lt;/a&gt; — &lt;a href="https://yodsira.com/en/product/woo-telegram-orders/" rel="noopener noreferrer"&gt;see the plugin page&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>plugins</category>
      <category>php</category>
    </item>
  </channel>
</rss>
